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

Bagaimanakah Saya Boleh Mendapatkan Direktori Pelaksanaan dalam Program C/C Merentas Platform?

DDD
DDDasal
2024-12-21 02:48:12721semak imbas

How Can I Get the Execution Directory in a Cross-Platform C/C   Program?

Cara Menentukan Direktori Pelaksanaan dalam Persekitaran Merentas Platform

Dalam bidang pengaturcaraan, menentukan direktori pelaksanaan program adalah tugas yang penting tetapi bergantung kepada platform dan sistem fail. Pembangun C dan C sering mencari penyelesaian universal yang mengatasi kebergantungan ini.

Walaupun mungkin tidak ada kaedah agnostik platform sepenuhnya, berikut ialah penyelesaian yang disesuaikan untuk Windows dan Linux:

Windows:

#include <windows.h>

int main() {
    char pBuf[256];
    size_t len = sizeof(pBuf);
    int bytes = GetModuleFileName(NULL, pBuf, len);
    printf("Execution directory: %s", pBuf);
    return 0;
}

Linux:

#include <unistd.h>
#include <string.h>

int main() {
    char pBuf[256];
    size_t len = sizeof(pBuf);
    int bytes = MIN(readlink("/proc/self/exe", pBuf, len), len - 1);
    if (bytes >= 0)
        pBuf[bytes] = '';
    printf("Execution directory: %s", pBuf);
    return 0;
}

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Direktori Pelaksanaan dalam Program C/C Merentas Platform?. 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