CARVIEW |
?V?F???X?N???v?g?ő??㩁Awhile????F?X?}?[?g?Ȑa?m?̂??߂̃V?F???X?N???v?g?i8?j?i1/2 ?y?[?W?j
?V?F???X?N???v?g?v???O???~???O?Ɏ??g?ނƂ??ɍł??͂܂?₷?????A???ꂪ?uwhile???v???B????͂??̌??????@?艺???Ă݂悤?B?i?ҏW???j
?V?F???X?N???v?g?ő??㩁Fwhile???
?@?O???̓V?F???X?N???v?g?v???O???~???O?̃R?c??1?Ƃ??āu?A?b?g?E?A?E?O?????X???v???Љ???B?Љ?̒???while???????N?????₷?????ɂ??ĐG?ꂽ???A?O??̐????????ł͂悭??????Ȃ?????????????Ǝv???B
?@????͂??́uwhile????v?ɏœ_?āA?V?F???X?N???v?g?v???O???~???O?ōł??͂܂?₷???????@?艺???Đ???????B
while?ƃp?C?v?̑g?ݍ??킹?Ŗ?蔭??
?@???̃V?F???X?N???v?g?????Ăق????B???s???ʂ?\?????Ăق????̂????A?????炭?قƂ?ǂ̕????u?W???o?͂?Linux???o?͂????v?Ɠ????邾?낤?B
#!/bin/sh OS=FreeBSD while : do OS=Linux break done echo ${OS}
?@???x?͎??̃V?F???X?N???v?g?̎??s???ʂ?z?????Ă݂Ăق????B?????Łu?W???o?͂?Linux???o?͂????v?ƍl???????́A????̘b?͍Ō?܂œǂق????ǂ??Ƃ??????ƂɂȂ?B????u?W???o?͂?FreeBSD???o?͂????v?Ɠ????A???A???̗??R???V?X?e???R?[???̓????????グ?Đ????ł?????́A????̘b?͂????Ő?グ?Ă?????Ă??\??Ȃ??B
#!/bin/sh OS=FreeBSD echo | while : do OS=Linux break done echo ${OS}
?@???s????Ǝ??̂悤?ɂȂ?B
$ ./while01.sh Linux $ ./while02.sh FreeBSD $
?@???????Ⴄ?̂́A?u?V?F???̓p?C?v???g?p?????ƁA?R?}???h?̕??????V?F????fork(2)???Afork(2)???Đ??????ꂽ?V?F???̕??ŃR?}???h?????s????v???߂??B?ȍ~?ŃV?F???̓????ʼn??????s????Ă???̂??ǂ??Ă??????B
?p?C?v?̓R?}???h?̕??????V?F????fork(2)??K?v?Ƃ???
?@truss(1)???g???ăV?X?e???R?[???̓?????ǂ??B?f?[?^?̉??H?ɕ֗??Ȃ̂ŁA?R?}???h?Ƃ???Open usp Tukubai???g?p????B?ǎ???????ꍇ?ɂ͂??̃R?}???h???g???Ă݂Ăق????B????A?ŏ?????Open usp Tukubai???Z?b?g?A?b?v???ꂽVirtualBox???z???̃C???[?W?t?@?C???̔z?z???n?܂????̂ŁA?????Ă݂?ɂ͂???????_?E?????[?h?????????ȒP????????Ȃ? ?iTukubai on FreeBSD 9.1-RC1?j?B
$ truss -c ./while01.sh 2>&1 | tail +3 | ctail -2 | self 1 3 | sort -k1,1 | keta access 3 close 11 fcntl 2 fstat 10 getegid 1 geteuid 2 getgid 1 getpid 1 getppid 1 getuid 1 lseek 3 lstat 2 mmap 20 munmap 7 open 11 read 12 readlink 1 sigaction 8 sigprocmask 10 stat 2 write 1 $
$ truss -c ./while02.sh 2>&1 | tail +3 | ctail -2 | self 1 3 | sort -k1,1 | keta access 3 close 13 fcntl 2 fork 2 fstat 10 getegid 1 geteuid 2 getgid 1 getpgrp 1 getpid 1 getppid 1 getuid 1 lseek 3 lstat 2 mmap 20 munmap 7 open 11 pipe 1 read 12 readlink 1 sigaction 8 sigprocmask 10 stat 2 write 1 $
?@ctail(1)??self(1)?Aketa(1)??Open usp Tukubai?̃R?}???h???B?e?L?X?g?̐??`?ɕ֗??Ȃ̂ł悭???p????B?g???????I?????C???}?j???A???ɂ܂Ƃ܂??Ă???B
?@?g???Ă???V?X?e???R?[???̍??ق????????o???Ǝ??̂悤?ɂȂ?B?p?C?v????????fork(2)?V?X?e???R?[????2??Apipe(2)?V?X?e???R?[????1??A?V?????lj?????Ă??邱?Ƃ???????B
--- truss01 2012-09-09 17:06:28.846231611 +0900 +++ truss02 2012-09-09 17:08:11.563231300 +0900 @@ -1,12 +1,14 @@ -$ truss -c ./while01.sh 2>&1 | tail +3 | ctail -2 | +$ truss -c ./while02.sh 2>&1 | tail +3 | ctail -2 | self 1 3 | sort -k1,1 | keta access 3 - close 11 + close 13 fcntl 2 + fork 2 fstat 10 getegid 1 geteuid 2 getgid 1 + getpgrp 1 getpid 1 getppid 1 getuid 1 @@ -15,6 +17,7 @@ mmap 20 munmap 7 open 11 + pipe 1 read 12 readlink 1 sigaction 8
?@?p?C?v??????ł???̂?????Apipe(2)?V?X?e???R?[?????lj?????Ă???͓̂??R???B????fork(2)???Ȃ?2??Ă?Ă???̂??A?Ƃ????_?ɂ???B
?@?????ŁA???̂悤?ȃV???v???ȃ??f?????l???Ă݂悤?B
a | b
?@?V?F???͂??̂悤?ȃ??C?????p?[?X????ƁA?܂????????g??2??fork(2)????B?????āAfork(2)???Đ????????q?v???Z?X?̓??o?͂?pipe(2)?Őڑ?????B
??????fork(2)???Ă???a?????s <==???̊Ԃ?pipe(2)?Őڑ?==> ??????fork(2)???Ă???b?????s
?@?R?}???h?̓??o?͂?pipe(2)?Őڑ????邽?߂ɂ́A???ꂼ????ʂ̃v???Z?X?Ƃ??ēƗ??????Ȃ???Ȃ?Ȃ??B???̂???fork(2)???Ďq?v???Z?X?????Ă???B?p?C?v??4?g???Ă???A5??fork(2)?????s???Ďq?v???Z?X?????A??????pipe(2)?Őڑ?????B?Ⴆ?p?C?v??4?A?????Ďg???Ă???Afork(2)??5????s?????B
?@???̎q?v???Z?X?́A?V?F???ł͂?????u?T?u?V?F???v?ƌĂ??B
Copyright © ITmedia, Inc. All Rights Reserved.
?A?C?e?B???f?B?A????̂??m?点
??IT eBook
RSS?ɂ???
?A?C?e?B???f?B?AID?ɂ???
???[???}?K?W???o?^
??IT?̃??[???}?K?W???́A ???????A???ׂĖ????ł??B???Ѓ??[???}?K?W???????w?ǂ????????B
ITmedia?̓A?C?e?B???f?B?A??????Ђ̓o?^???W?ł??B
???f?B?A?ꗗ | ????SNS | ?L???ē? | ???₢???킹 | ?v???C?o?V?[?|???V?[ | RSS | ?^?c??? | ?̗p??? | ??????