生活随笔
收集整理的這篇文章主要介紹了
linux下的access()函数判断文件是否存在、打印时间
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一、access函數(shù)
功能描述:
檢查調(diào)用進程是否可以對指定的文件執(zhí)行某種操作。
用法:
#include <unistd.h>
#include <fcntl.h>
int access(const char *pathname, int mode);
參數(shù):
pathname: 需要測試的文件路徑名。
mode: 需要測試的操作模式,可能值是一個或多個R_OK(可讀?), W_OK(可寫?), X_OK(可執(zhí)行?) 或 F_OK(文件存在?)組合體。
返回說明:
成功執(zhí)行時,返回0。失敗返回-1,errno被設(shè)為以下的某個值
EINVAL: 模式值無效
EACCES: 文件或路徑名中包含的目錄不可訪問
ELOOP : 解釋路徑名過程中存在太多的符號連接
ENAMETOOLONG:路徑名太長
ENOENT: 路徑名中的目錄不存在或是無效的符號連接
ENOTDIR: 路徑名中當(dāng)作目錄的組件并非目錄
EROFS: 文件系統(tǒng)只讀
EFAULT: 路徑名指向可訪問的空間外
EIO: 輸入輸出錯誤
ENOMEM: 不能獲取足夠的內(nèi)核內(nèi)存
ETXTBSY:對程序?qū)懭氤鲥e
例如:
C代碼
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcntl.h> int main() { if((access("test.c",F_OK))!=-1) { printf("文件 test.c 存在.\n"); } else { printf("test.c 不存在!\n"); } if(access("test.c",R_OK)!=-1) { printf("test.c 有可讀權(quán)限\n"); } else { printf("test.c 不可讀.\n"); } if(access("test.c",W_OK)!=-1) { printf("test.c 有可寫權(quán)限\n"); } else { printf("test.c 不可寫.\n"); } if(access("test.c",X_OK)!=-1) { printf("test.c 有可執(zhí)行權(quán)限\n"); } else { printf("test.c 不可執(zhí)行.\n"); } return 0; }
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>int main()
{if((access("test.c",F_OK))!=-1){printf("文件 test.c 存在.\n");}else{printf("test.c 不存在!\n");}if(access("test.c",R_OK)!=-1){printf("test.c 有可讀權(quán)限\n");}else{printf("test.c 不可讀.\n");}if(access("test.c",W_OK)!=-1){printf("test.c 有可寫權(quán)限\n");}else{printf("test.c 不可寫.\n");}if(access("test.c",X_OK)!=-1){printf("test.c 有可執(zhí)行權(quán)限\n");}else{printf("test.c 不可執(zhí)行.\n");}return 0;
}
運行結(jié)果如下:
二、如果在C中打印當(dāng)前時間
下面是一個打印系統(tǒng)當(dāng)前時間的小例子,函數(shù)的語法暫時就不列出了,只是會用這些就差不多了
C代碼
#include <stdio.h> #include <time.h> int main() { time_t now = time(NULL); char buf[25]; strftime(buf,24,"%Y%m%d",localtime(&now)); printf("%s\n",buf); strftime(buf,24,"%Y-%m-%d %H:%M:%S",localtime(&now)); printf("%s\n",buf); strftime(buf,24,"%y%m%d %H:%M:%S",localtime(&now)); printf("%s\n",buf); strftime(buf,24,"%y%m%d",localtime(&now)); printf("%s\n",buf); strftime(buf,24,"%H:%M:%S",localtime(&now)); printf("%s\n",buf); return 0; }
#include <stdio.h>
#include <time.h>
int main()
{time_t now = time(NULL);char buf[25];strftime(buf,24,"%Y%m%d",localtime(&now));printf("%s\n",buf);strftime(buf,24,"%Y-%m-%d %H:%M:%S",localtime(&now));printf("%s\n",buf);strftime(buf,24,"%y%m%d %H:%M:%S",localtime(&now));printf("%s\n",buf);strftime(buf,24,"%y%m%d",localtime(&now));printf("%s\n",buf);strftime(buf,24,"%H:%M:%S",localtime(&now));printf("%s\n",buf);return 0;
}
運行結(jié)果:
總結(jié)
以上是生活随笔為你收集整理的linux下的access()函数判断文件是否存在、打印时间的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。