次のbashスクリプトがあるとしましょう。
#!/usr/bin/bash
ls *.py
これで実行するstrace -f ./test.sh
と、出力に次のものが表示されます。
[pid 25916] execve("/usr/bin/ls", ["ls", "test2.py", "test.py"], [/* 28 vars */]) = 0
[pid 25916] brk(NULL) = 0x1c7a000
[pid 25916] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fbb616ae000
[pid 25916] access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
[pid 25916] open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
brk()
この部分から出てきたことがわかります。この回答しかし、通貨はどうですかmmap()
?
これはプロセスイメージのマッピング(一部)ですか?それとも、呼び出し時にbrk()
新しいサブプロセスのイメージがすでに置き換えられていますか?