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.)