Sebagian besar panggilan sistem ada kebisingan dari memuat perpustakaan bersama saat startup. Hal-hal menarik terjadi di sini:
openat(AT_FDCWD, ".", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
getdents(3, /* 2 entries */, 32768) = 48
getdents(3, /* 0 entries */, 32768) = 0
close(3)
openat(2)
panggilan sistem digunakan untuk membuka direktori saat ini ("."
) relatif terhadap direktori kerja saat ini (AT_FDCWD
bendera). O_DIRECTORY
flag menunjukkan bahwa ia ingin membuka direktori dan membaca isi direktori.
Data direktori sebenarnya dibaca menggunakan getdents(2)
panggilan sistem. Dalam hal ini, ini memanggilnya dua kali, karena hingga mengembalikan 0, tidak yakin apakah ada lebih banyak data atau tidak. Terakhir, deskriptor file ditutup setelah selesai.
Namun, jika Anda menulis program Anda sendiri, Anda tidak akan memanggilnya secara langsung -- sebagai gantinya Anda akan menggunakan opendir(3)
, readdir(3)
, dan closedir(3)
untuk membaca direktori. Mereka portabel (sesuai POSIX), dan melindungi Anda dari detail panggilan sistem yang mendasarinya. Mereka juga lebih mudah digunakan, IMO.