GNU/Linux >> Belajar Linux >  >> Linux

Di mana PATH_MAX didefinisikan di Linux?

Cara portabel untuk melakukannya adalah:

#define _POSIX_C_SOURCE 1
#include <limits.h>

Spesifikasi:https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html


Ada di linux/limits.h .
#define PATH_MAX 4096 /* # chars in a path name including nul */

#include <linux/limits.h>

char current_path[PATH_MAX];

PATH_MAX memiliki beberapa kekurangan seperti yang disebutkan di blog ini (terima kasih paulsm4)


Ketahuilah, bahwa masih belum jelas apakah PATH_MAX mendefinisikan panjang maksimum dengan atau tanpa byte nul trailing. Mungkin satu atau yang lain pada sistem operasi yang berbeda. Jika Anda tidak dapat atau tidak ingin memeriksa kasus mana selama kompilasi, lebih aman untuk memaksakan batas buatan PATH_MAX - 1 . Lebih baik aman daripada menyesal. (Jelas, Anda masih perlu memesan setidaknya PATH_MAX byte memori untuk menyangga string.)


Linux
  1. Sysadmin Linux ingin tahu:Ke mana perginya ruang disk saya?

  2. Kali Linux 1.0.5 dan Radio yang Ditentukan Perangkat Lunak

  3. Di mana fungsi itoa di Linux?

  1. GUI Linux Khusus:Mulai dari mana?

  2. Di mana linux menyimpan syslog saya?

  3. Di mana letak sistem file Subsistem Linux di Windows 10?

  1. Linux – Di Mana Semaphore Bernama Disimpan??

  2. Apa antarmuka untuk panggilan sistem ARM dan di mana itu didefinisikan dalam kernel Linux?

  3. Linux:Tempat meletakkan file swap