Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mendapatkan Direktori Program dalam C/C Merentasi Platform Berbeza?

Bagaimanakah Saya Boleh Mendapatkan Direktori Program dalam C/C Merentasi Platform Berbeza?

Patricia Arquette
Lepaskan: 2024-12-22 17:03:10
asal
766 orang telah melayarinya

How Can I Get a Program's Directory in C/C   Across Different Platforms?

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;
Salin selepas log masuk

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;
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan