Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menentukan Laluan Boleh Laksana C/C Saya?

Bagaimanakah Saya Boleh Menentukan Laluan Boleh Laksana C/C Saya?

Mary-Kate Olsen
Lepaskan: 2024-12-20 13:08:10
asal
659 orang telah melayarinya

How Can I Reliably Determine the Path of My C/C   Executable?

Menentukan Lokasi Boleh Laksana dalam C

Dalam C/C , mendapatkan semula laluan penuh program yang sedang dilaksanakan boleh dicapai menggunakan pelbagai pendekatan . Satu kebimbangan umum ialah argumen argv[0] yang disediakan dalam fungsi utama tidak selalu memberikan laluan lengkap. Untuk menangani isu ini, kami meneroka beberapa penyelesaian:

Sistem Berasaskan Unix dengan /proc

Dalam sistem Unix dengan sokongan /proc, kaedah yang paling mudah dan boleh dipercayai ialah kepada:

  • Linux: readlink("/proc/self/exe", buf, bufsize)
  • FreeBSD: readlink("/proc/curproc/file", buf, bufsize)
  • Solaris: pautan baca("/proc/self/path/a.out", buf, bufsize)

Sistem Berasaskan Unix Tanpa /proc

Untuk sistem tanpa /proc, beberapa sandaran boleh digunakan:

  • Jika argv[0] bermula dengan "/", ia mewakili laluan mutlak.
  • Jika argv[0] mengandungi "/", tambahkannya pada direktori kerja semasa (dengan andaian ia belum diubah suai).
  • Cari direktori dalam $PATH untuk argv[0] boleh laku.

Selain itu, adalah disyorkan untuk mengesahkan sama ada boleh laku ialah pautan sym dan menyelesaikannya berbanding dengan direktorinya (kecuali untuk /proc kaedah pada Linux).

Sistem Windows

Pada Windows, kaedah pilihan ialah:

  • GetModuleFileName(NULL, buf, bufsize)

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan Laluan Boleh Laksana C/C Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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