Slide 15
Slide 15 text
Q: システムコールを使わずに終了するプログラム書ける?
$ echo 'int main(){return 0;}' | gcc -static -x c -
$ strace ./a.out
execve("./a.out", ["./a.out"], [/* 56 vars */]) = 0
uname({sysname="Linux", nodename="hf", ...}) = 0
brk(NULL) = 0xeec000
brk(0xeed1c0) = 0xeed1c0
arch_prctl(ARCH_SET_FS, 0xeec880) = 0
readlink("/proc/self/exe", "/home/yaegashi/a.out", 4096) = 20
brk(0xf0e1c0) = 0xf0e1c0
brk(0xf0f000) = 0xf0f000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or
directory)
exit_group(0) = ?
+++ exited with 0 +++
実際には libc ランタイムが main() の前後でたくさんシステムコール呼んでる