Mendapatkan Direktori Program dalam C/C Merentasi Platform dan Sistem Fail
Dalam banyak senario, adalah perlu untuk menentukan direktori dari mana sesuatu program sedang berjalan. Maklumat ini boleh menjadi berharga untuk pelbagai tujuan, seperti mengakses fail konfigurasi atau pengelogan. Walau bagaimanapun, mendapatkan direktori ini dalam cara platform-agnostik dan sistem fail-agnostik boleh menimbulkan cabaran.
Pendekatan Standard
Pustaka C/C standard, malangnya, tidak tidak menyediakan fungsi standard untuk tujuan ini. Untuk penyelesaian khusus platform, situasinya adalah seperti berikut:
Windows
Pada sistem Windows, fungsi GetModuleFileName boleh digunakan untuk mendapatkan semula laluan penuh ke pelaksana aplikasi.
char pBuf[256]; size_t len = sizeof(pBuf); int bytes = GetModuleFileName(NULL, pBuf, len); return bytes ? bytes : -1;
Linux
Untuk sistem Linux, fungsi pautan baca boleh digunakan untuk membaca pautan simbolik yang menghala ke program yang sedang dilaksanakan.
char pBuf[256]; size_t len = sizeof(pBuf); int bytes = MIN(readlink("/proc/self/exe", pBuf, len), len - 1); if (bytes >= 0) pBuf[bytes] = ''; return bytes;
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Direktori Program dalam C/C Merentasi Platform Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!