GNU/Linux >> Linux Esercitazione >  >> Linux

Quale chiamata di sistema linux viene utilizzata dal comando ls in linux per visualizzare il nome della cartella/file?

La maggior parte delle chiamate di sistema sono disturbate dal caricamento delle librerie condivise all'avvio. Le cose interessanti accadono qui:

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)  

Il openat(2) la chiamata di sistema viene utilizzata per aprire la directory corrente ("." ) relativo alla directory di lavoro corrente (il AT_FDCWD bandiera). Il O_DIRECTORY flag indica che vuole aprire la directory e leggere il contenuto della directory.

I dati effettivi della directory vengono letti utilizzando il getdents(2) chiamata di sistema. In questo caso, l'ha chiamato due volte, poiché fino a quando non restituisce 0, non è sicuro se ci siano più dati o meno. Infine, il descrittore di file viene chiuso al termine.

Se dovessi scrivere il tuo programma, tuttavia, non li chiameresti direttamente -- invece useresti opendir(3) , readdir(3) e closedir(3) per leggere una directory. Sono portatili (conformi a POSIX) e ti isolano dai dettagli delle chiamate di sistema sottostanti. Sono anche più facili da usare, IMO.


Linux
  1. Come utilizzare il comando Tar in Linux

  2. Come eliminare una directory e una cartella in Linux?

  3. Linux:la barra (/) fa parte del nome della directory principale di Linux?

  4. Esempi essenziali del comando file in Linux

  5. 9 esempi utili del comando Split in Linux

Comando Fsck in Linux (ripara file system)

Rimuovi directory in Linux - Come eliminare una cartella dalla riga di comando

Visualizza il contenuto di un file nella riga di comando di Linux

Come utilizzare il comando fd sul sistema Linux

Il comando Trova Directory di Linux:spiegato

Come utilizzare il comando which in Linux