簡體   English   中英

C ++在LD_LIBRARY_PATH上查找文件

[英]C++ find file on LD_LIBRARY_PATH

在C / C ++中,是否存在檢查特定文件是否在特定路徑上的現有方法? 我想像的語法可能看起來像stat(),但具有用於文件名和路徑的附加參數。

pathstat( struct stat stResult, const char* filename, const char* path );

使用帶有F_OK標志的access()函數將檢查您的文件是否存在。 但是在此之前,您必須准備文件路徑(通過filenamepath變量),然后再將文件路徑作為函數access()中的輸入參數傳遞。

在這個答案中,我假設您使用linux作為平台

void pathstat( struct stat stResult, const char* filename, const char* path )
    char *file;
    int path_len;

    if (!filename) {
        // set error in the stResult
        return;
    }

    path_len = path ? strlen(path) : 0;

    file = malloc((strlen(filename) + path_len + 2) * sizeof(char));
    // PREPARE THE FILE PATH
    if (path && path[0] && path[path_len-1]=='/')
        sprintf(file,"%s%s",path,filename);
    else if (path && path[0])
        sprintf(file,"%s/%s",path,filename);
    else
        file = strcpy(file,filename);

    //NOW CHECK IF THE FILE PATH EXIST WITH ACCESS
    if (access(file, F_OK) != -1) {
        //file exist
    } else {
        // file does not exxit
    }
    free(file);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM