#include <unistd.h>
int access(const char *pathname, int mode);
作用:檢查調用該函數的進程是否可以對指定的文件執行某種操作。
第一個形參:文件名;第二個形參:R_OK(是否可讀)、W_OK(是否可寫)、X_OK(是否可執行)、F_OK(文件是否存在);返回值:0表示擁有所查的權限(即符合該權限)、-1(未通過所查詢的權限或者發生了其它錯誤,詳情看perror和errno)。
//代碼
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>int main(int argc, char* argv[])
{if(argc < 2){printf("a.out filename\n");exit(1);}int ret = access(argv[1], W_OK);if(ret == -1){perror("access");exit(1);}printf("you can write this file.\n");return 0;
}
#include <stdlib.h>
long int strtol(const char *str, char **endptr, int base);
作用:strtol函數會將參數 str 字符串根據參數 base 來轉換成長整型數(long)。參數 base 范圍從2至36,或0。參數base 代表 str 采用的進制方式,如base 值為10則采用10進制,若base 值為16則采用16進制等。strtol函數會掃描參數 str 字符串,跳過前面的空白字符(例如空格,tab縮進等),直到遇上數字或正負符號才開始做轉換,再遇到非數字或字符串結束時('\0')結束轉換,并將結果返回。
當base的值為0時,默認采用 10 進制轉換,但如果遇到 '0x' / '0X' 前置字符(指str)則會使用 16進制轉換,遇到'0'前置字符(指str)則會使用8進制轉換。
若endptr不為NULL,則會將遇到的不符合條件而終止的字符指針由endptr傳回;若 endptr為NULL,則表示該參數無效,或不使用該參數。(一般使用時,直接指定其為NULL就好)
參數說明:str 為要轉換的字符串,endptr 為第一個不能轉換的字符的指針(字符串),base為字符串str所采用的進制。