GNU/Linux >> Belajar Linux >  >> Linux

Panggilan sistem linux mana yang digunakan oleh perintah ls di linux untuk menampilkan nama folder/file?

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.


Linux
  1. Contoh Penting dari Perintah File di Linux

  2. 9 Contoh Perintah Split yang Berguna di Linux

  3. Perintah mana di shell Linux/UNIX sh yang mengembalikan direktori saya saat ini?

  1. Cara Menggunakan Perintah Tar di Linux

  2. Bagaimana cara menghapus direktori dan folder di Linux?

  3. Linux – Apakah Slash (/) Bagian Dari Nama Direktori Root Linux?

  1. Cara Menghapus (Menghapus) File atau Direktori di Linux

  2. Pengantar Sistem File Linux

  3. Cara Menggunakan Perintah md5sum di Linux