Cara Menentukan Lokasi Boleh Laksana dalam C
Dalam C/C , mendapatkan laluan lengkap program yang sedang dilaksanakan boleh mencabar. Khususnya, menggunakan argv[0] mungkin tidak menyediakan laluan penuh.
Sistem Unix tanpa /proc
Jika sistem Unix anda tidak mempunyai sistem fail /proc, pertimbangkan strategi berikut:
- Semak sama ada argv[0] bermula dengan garis miring (/): Ini menunjukkan laluan mutlak.
- Jika argv[0] mengandungi garis miring (/): Tambahkannya pada direktori kerja semasa (cwd).
- Jika tidak, cari argv boleh laku[0] dalam direktori yang ditentukan dalam pembolehubah persekitaran $PATH.
Sistem Unix dengan /proc
Untuk sistem Unix dengan /proc, anda boleh menggunakan salah satu kaedah berikut:
- Linux: readlink("/proc/self/exe", buf , bufsize)
- FreeBSD: readlink("/proc/curproc/file", buf, bufsize)
- Solaris: readlink("/proc/self/path/a.out", buf, bufsize)
Sistem Windows
Pada Windows, gunakan GetModuleFileName fungsi:
GetModuleFileName(NULL, buf, bufsize);
Pertimbangan Tambahan
- Sahkan bahawa boleh laku bukan pautan sym dan selesaikannya jika perlu.
- Panggilan proses harus menetapkan argv[0] dengan betul agar maklumat ini tepat.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Laluan Penuh C/C Boleh Laku Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Kenyataan:Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn