2011-07-21 13:23

[C語言] realpath 取得真實路徑

realpath 真是一個方便又好用函數,簡簡單單就可以取得一個路徑的絕對路徑,還可以檢查檔案是否存在。


#include <stdlib.h>

char *realpath(const char *path, char *resolved_pa​​th)

函數說明:realpath()用來將參數 path 所指的相對路徑轉換成絕對路徑後存於參數 resolved_pa​​th 所指的字符串數組或指針中。
返回值: 成功則返回指向 resolved_pa​​th 的指針,失敗返回 NULL,錯誤代碼存於 errno。

PS:當路徑檔案不存在時也會丟出 NULL,但 resolved_pa​​th 中仍會有化簡後的路徑。


  1. #include <stdio.h> 
  2. #include <unistd.h> 
  3.  
  4. int main(int argc, char **argv){ 
  5.    if (argc != 2) { 
  6.        printf("Usage: %s <file>\n", argv[0]); 
  7.        return 1; 
  8.    } 
  9.  
  10.    char path[1024]; 
  11.    char *exist; 
  12.  
  13.    exist=realpath(argv[1], path); 
  14.  
  15.    /*經過化簡後的路徑*/ 
  16.    puts(path); 
  17.  
  18.    /*如果檔案不存在將會是 NULL*/ 
  19.    if(exist==NULL){ 
  20.        puts("NULL"); 
  21.    }else{ 
  22.        puts(exist); 
  23.    } 
  24.  
  25.    return 0; 
  26. } 

0 回應: