linux C判斷檔案是否存在【轉】
一、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:對程式寫入出錯
- #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"
- {
- 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"
- {
- printf("test.c 有可執行許可權\n");
- }
- else
- {
- printf("test.c 不可執行.\n");
- }
- 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 C判斷檔案是否存在【轉】
一、access函式 功能描述: 檢查呼叫程序是否可以對指定的檔案執行某種操作。 用法: #include <unistd.h> #include <fcntl.h> int access(const char *pathname,
linux core dump 檔案 gdb分析【轉】
core dump又叫核心轉儲, 當程式執行過程中發生異常, 程式異常退出時, 由作業系統把程式當前的記憶體狀況儲存在一個core檔案中, 叫core dump. (linux中如果記憶體越界會收到SIGSEGV訊號,然後就會core dump) 在程式執行的過程中,有
C#中.snk檔案的作用【轉】
SNK,作為程式字尾的時候,是.net中的強密匙加密檔案! 當你把一個程式集放進GAC(全域性程式集快取)時,就要加強名(也就是簽名),在GAC中的程式集可以被所有程式引用訪問(相當於以前COM元件在登錄檔裡註冊一樣),如果不放進GAC,剛所有使用這個程式集都要複製這個程式集(也就是私有
mlock家族:鎖定物理內存【轉】
簡單 %0 ive alloc 即使 編程 string類 第一個 lang 轉自:http://blog.csdn.net/fjt19900921/article/details/8074541 鎖住內存是為了防止這段內存被操作系統swap掉。並且由於此操作風險高,僅超
C++中的異常安全性【轉】
div 現實 操作 ... 基本 數據 安全性 異常安全 做的 原文寫的非常好,來自這裏 一個函數如果說是“異常安全”的,必須同時滿足以下兩個條件:1.不泄漏任何資源;2.不允許破壞數據。 我們先通過兩個反面的例子開始。 第一個是造成資源泄漏的例子。一個類Ty
Linux下git源碼安裝【轉】
lac itl 允許 pla rom code ins 8.0 代碼 轉自:http://blog.csdn.net/u012889638/article/details/51167123 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 版本信息:Cent
C#中的數組【轉】
常用屬性 創建 ++ 返回 foreach 限制 允許 [] 總數 目錄 數組的聲明 數組的初始化 數組的訪問 數組的常用屬性和方法 為方便起見,以下數組均定義為整型 數組的聲明 C#聲明數組時,方括號[]必須跟
Linux htop工具使用詳解【轉】
進程信息 保存 作用 ctrl+c 設置 uri ppi 虛擬 獲取 原文地址: http://www.cnphp6.com/archives/65078 一.Htop的使用簡介 大家可能對top監控軟件比較熟悉,今天我為大家介紹另外一個監控軟件Htop,姑且稱之為top的
linux中結構體對齊【轉】
src double 無需 fine types 查看 真理 blog 多個 轉自:https://blog.csdn.net/suifengpiao_2011/article/details/47260085 linux中定義對齊字節 typedef struct
C++中STL用法總結【轉】
(轉自:https://blog.csdn.net/piaoxuezhong/article/details/54348787?utm_source=blogxgwz8) 1.1 什麼是STL? STL(Standard Template Library),即標準模板庫,是一個具有工業強度的
C++ vector型別要點總結【轉】
(轉自:https://blog.csdn.net/suool/article/details/13295439?utm_source=blogxgwz22) 概述 C++內建的陣列支援容器的機制,但是它不支援容器抽象的語義。要解決此問題我們自己實現這樣的類。在標準C++中
C++中的::的作用【轉】
(轉自:https://blog.csdn.net/zhanghuaichao/article/details/55676209?utm_source=blogxgwz0) (1)作用域限定符,當在類體中直接定義函式時,不需要在函式名字的前面加上類名,但是在類體外實現函式定義的時候,必須加上類名
linux中的sh指令碼語法【轉】
(轉自:http://tsov.net/sh-script-syntax/) 玩linux都知道sh指令碼的方便,但如何編寫sh指令碼卻是像我這樣的新手和菜鳥的難題。能不能編寫得出來是一回事,了不瞭解又是另一回事。抱著好好學習,天天向上的精神,大家有空就看看吧,沒有壞處的。下面來抄來一大段sh指
Linux核心中的迴圈緩衝區【轉】
(轉自:https://blog.csdn.net/heanyu/article/details/6291825) 迴圈緩衝區定義在include/linux/kfifo.h中,如下: struct kfifo { unsigned char *buffer; /
Linux裝置樹語法詳解【轉】
轉自:https://www.cnblogs.com/xiaojiang1025/p/6131381.html 概念 Linux核心從3.x開始引入裝置樹的概念,用於實現驅動程式碼與裝置資訊相分離。在裝置樹出現以前,所有關於裝置的具體資訊都要寫在驅動裡,一旦外圍裝置變化,驅動程式碼就要重寫。引入了裝置樹之
linux核心除錯技巧之一 dump_stack【轉】
在核心中程式碼呼叫過程難以跟蹤,上下文關係複雜,確實讓人頭痛 呼叫dump_stack()就會列印當前cpu的堆疊的呼叫函數了。 如此,一目瞭然的就能看到當前上下文環境,呼叫關係了 假設: 遇到uvc_probe_video這麼一個函式,不知道它最終是被誰呼叫到的,根據linux裝置模型,初步推測,p
C++中的mutable關鍵字【轉】
mutalbe的中文意思是“可變的,易變的”,跟constant(既C++中的const)是反義詞。 在C++中,mutable也是為了突破const的限制而設定的。被mutable修飾的變數,將永遠處於可變的狀態,即使在一個const函式中。 我們知道,
一個易錯的面試題來加深對C++多型的理解【轉】
原題目程式比較長, 我來簡化成核心的考察部分, 如下: #include <iostream> using namespace std; class A { public: virtual void x() { cout <<
linux中的strings命令簡介【轉】
strings - print the strings of printable characters in files. 意思是, 列印檔案中可列印的字元。 我來補充一下吧, 這個檔案可以是文字檔案(test.c), 可執行檔案(test), 動
Linux下調整ext3分割槽大小【轉】
本文轉載自:https://blog.csdn.net/cruise_h/article/details/22403529 本文討論如何再不丟失資料的情況下調整已有ext3分割槽的大小,包括: 壓縮已有分割槽 增大已有分割槽 合併兩個ext3分割槽 這在沒有使用LVM(邏輯卷管理),而