Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mendapatkan Laluan Penuh C/C Boleh Laku Saya?

Bagaimanakah Saya Boleh Mendapatkan Laluan Penuh C/C Boleh Laku Saya?

Linda Hamilton
Linda Hamiltonasal
2024-12-16 21:13:22765semak imbas

How Can I Get the Full Path of My C/C   Executable?

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