日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux下的access()函数判断文件是否存在、打印时间

發布時間:2025/4/5 linux 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux下的access()函数判断文件是否存在、打印时间 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、access函數

功能描述:
檢查調用進程是否可以對指定的文件執行某種操作。

用法:
#include <unistd.h>
#include <fcntl.h>

int access(const char *pathname, int mode);

參數:
pathname: 需要測試的文件路徑名。
mode: 需要測試的操作模式,可能值是一個或多個R_OK(可讀?), W_OK(可寫?), X_OK(可執行?) 或 F_OK(文件存在?)組合體。

返回說明:
成功執行時,返回0。失敗返回-1,errno被設為以下的某個值
EINVAL: 模式值無效
EACCES: 文件或路徑名中包含的目錄不可訪問
ELOOP : 解釋路徑名過程中存在太多的符號連接
ENAMETOOLONG:路徑名太長
ENOENT: 路徑名中的目錄不存在或是無效的符號連接
ENOTDIR: 路徑名中當作目錄的組件并非目錄
EROFS: 文件系統只讀
EFAULT: 路徑名指向可訪問的空間外
EIO: 輸入輸出錯誤
ENOMEM: 不能獲取足夠的內核內存
ETXTBSY:對程序寫入出錯

例如:

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 有可讀權限\n");
  • }
  • else
  • {
  • printf("test.c 不可讀.\n");
  • }
  • if(access("test.c",W_OK)!=-1)
  • {
  • printf("test.c 有可寫權限\n");
  • }
  • else
  • {
  • printf("test.c 不可寫.\n");
  • }
  • if(access("test.c",X_OK)!=-1)
  • {
  • printf("test.c 有可執行權限\n");
  • }
  • else
  • {
  • printf("test.c 不可執行.\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 有可讀權限\n");}else{printf("test.c 不可讀.\n");}if(access("test.c",W_OK)!=-1){printf("test.c 有可寫權限\n");}else{printf("test.c 不可寫.\n");}if(access("test.c",X_OK)!=-1){printf("test.c 有可執行權限\n");}else{printf("test.c 不可執行.\n");}return 0; }

    運行結果如下:


    二、如果在C中打印當前時間

    下面是一個打印系統當前時間的小例子,函數的語法暫時就不列出了,只是會用這些就差不多了

    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; }

    運行結果:


    總結

    以上是生活随笔為你收集整理的linux下的access()函数判断文件是否存在、打印时间的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。