導航:首頁 > 操作系統 > linuxcstat

linuxcstat

發布時間:2023-05-28 23:35:26

A. linux下C語言怎麼獲取文件創建時間

在 Windows 下,一個文件有創建時間、修改時間、訪問時間。而在 Linux 下,一個文件也有三種時間,分別是訪問時間(Access)、修改時間(Modify)、狀態改變時間(Change)。

可以使用 stat 命令查看文件的訪問時間、修改時間和狀態改變時間。

本人使用的機器的磁碟分區使用的文件系統類型是 ext3,也就是說本人是無法查看文件創建時間的。但是,如果文件創建後就沒有修改過,修改時間=創建時間;如果文件創建後,狀態就沒有改變過,那麼狀態改變時間=創建時間;如果文件創建後,沒有被讀取過,那麼訪問時間=創建時間,當這個基本不太可能。

那什麼時候訪問時間,修改時間和狀態改變時間會變化呢?比如我們使用vi打開文件但不編輯,那麼退出後文件的訪問時間就會改變;比如我們使用vi打開文件並且編輯後保存退出,那麼文件的修改時間就會改變,當然訪問時間也改變了;再比如使用chmod +x給文件增加可執行的屬性,那麼文件的狀態改變時間就會改變。

【答題不易,請採納謝謝】

B. linux C語言,stat 是哪(幾)個詞語的縮寫

1樓別誤導人,statue是什麼啊,雕像,雕像和C語言有什麼關系
樓主說的stat應該是指stat函數或者芹襪閉嫌裂sys/stat.h頭文件吧
在man stat裡面,解釋是
stat - display file or file system status
所以stat應該就是status的縮寫而好腔已

C. linux c stat結構中uid_t是什麼數據類型

肯定是整數類型,正族剩如答下舉橡弊是8位,16位,32位的問題及是否為有符號和無符號,自己測試下就知道了,用sizeof測試位數,申明一個變數,給其賦一個負值,再把該變數賦給一個int型變數,用printf顯示就知道了

D. Linux 下調用C的庫函數stat,返回errno=75然後調用strerror(errno)= 7287475, 請問上述錯誤碼代表什麼錯誤

errno = 75

返回 」75「 代表的錯誤是:值已經大於了寬笑定義的數據伍巧侍類腔吵型

E. 如何在Linux下用c語言創建守護進程並監控系統運行期間的所有進程

可以分三步來做:


  1. 做兩個簡單的守護進程,並能正常運行

  2. 監控進程是否在運行

  3. 啟動進程


綜合起來就可以了,代碼如下:
被監控進程thisisatest.c(來自):
#include<unistd.h>
#include<signal.h>
#include<stdio.h>
#include<stdlib.h>
#include<sys/param.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<time.h>


void init_daemon()
{
int pid;
int i;
pid=fork();
if(pid<0)
exit(1); //創建錯誤,退出
else if(pid>0) //父進程退出
exit(0);

setsid(); //使子進程成為組長
pid=fork();
if(pid>0)
exit(0); //再次退出,使進程不是組長,這樣進程就不會打開控制終端
else if(pid<0)
exit(1);


//關閉進程打開的文件句柄
for(i=0;i<NOFILE;i++)
close(i);
chdir("/root/test"); //改變目錄
umask(0);//重設文件創建的掩碼
return;
}


void main()
{
FILE *fp;
time_t t;
init_daemon();
while(1)
{
sleep(60); //等待一分鍾再寫入
fp=fopen("testfork2.log","a");
if(fp>=0)
{
time(&t);
fprintf(fp,"current time is:%s ",asctime(localtime(&t))); //轉換為本地時間輸出
fclose(fp);
}
}
return;
}


監控進程monitor.c:
#include<unistd.h>
#include<signal.h>
#include<stdio.h>
#include<stdlib.h>
#include<sys/param.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<time.h>


#include<sys/wait.h>
#include<fcntl.h>
#include<limits.h>


#define BUFSZ 150


void init_daemon()
{
int pid;
int i;
pid=fork();
if(pid<0)
exit(1); //創建錯誤,退出者氏
else if(pid>0) //父進程退出
exit(0);


setsid(); //使子進程成為組長
pid=fork();
if(pid>0)
exit(0); //再次退出,使進程不是組長,這樣進程就不會打開控制終端
else if(pid<0)
exit(1);


//關閉進程打開的文件句柄
for(i=0;i<首搏散NOFILE;i++)
close(i);
chdir("/root/test"); //改變目錄
umask(0);//重設文件創建的掩碼銀歷
return;
}


void err_quit(char *msg)
{
perror(msg);
exit(EXIT_FAILURE);
}


// 判斷程序是否在運行
int does_service_work()
{
FILE* fp;
int count;
char buf[BUFSZ];
char command[150];
sprintf(command, "ps -ef | grep thisisatest | grep -v grep | wc -l" );


if((fp = popen(command,"r")) == NULL)
err_quit("popen");


if( (fgets(buf,BUFSZ,fp))!= NULL )
{
count = atoi(buf);
}
pclose(fp);
return count;
// exit(EXIT_SUCCESS);
}




void main()
{
FILE *fp;
time_t t;
int count;
init_daemon();
while(1)
{
sleep(10); //等待一分鍾再寫入
fp=fopen("testfork3.log","a");
if(fp>=0)
{
count = does_service_work();
time(&t);
if(count>0)
fprintf(fp,"current time is:%s and the process exists, the count is %d ",asctime(localtime(&t)), count); //轉換為本地時間輸出
else
{
fprintf(fp,"current time is:%s and the process does not exist, restart it! ",asctime(localtime(&t))); //轉換為本地時間輸出
system("/home/user/daemon/thisisatest"); //啟動服務
}


fclose(fp);
}
}
return;
}


具體CMD命令:


cc thisisatest.c -o thisisatest
./thisisatest
cc monitor.c -o monitor
./monitor


tail -f testfork3.log -- 查看日誌

F. linux c,運行後提示:「已放棄(核心轉儲)」,代碼如下

這里寫錯了struct stat *buf = malloc (sizeof(stat));
你要申請的是結構體大小尺寸就應該是這樣malloc(sizeof(struct stat))

G. linux c用什麼函數創建文件夾

Linux c語言可以使用系統提供的mkdir函數來創建文件夾。

1、函數原型

int mkdir(const char *path, mode_t mode);

2、參數說明:

path是目錄名
mode是目錄許可權

3、需要頭文件

#include<sys/stat.h>

4、示例

//添加mkdir函數聲明頭文件
#include<sys/stat.h>
#include<sys/types.h>
intmain()//主函數
{
//直接調用mkdir函數
//建立一個名為的文件夾
//許可權為0777,即擁有者許可權為讀、寫、執行
//擁有者所在組的許可權為讀、寫、執行
//其它用戶的許可權為讀、寫、執行
mkdir("",0777);
return0;
}

說明:函數調用試圖建立777許可權的文件夾,但是在實際程序執行時,還需要考慮umask值,最終才會得到實際的許可權。

5、執行效果如下圖所示

說明:t.c是源碼文件,有gcc進行編譯,-o是gcc的參數,有於指明編譯後輸出的文件,t為源碼經gcc編譯後生成的可執行文件。./t是執行當前目錄下的生成的可執行文件t。

閱讀全文

與linuxcstat相關的資料

熱點內容
鴻蒙安卓如何下載 瀏覽:900
開3389命令 瀏覽:540
程序員大都單純嗎 瀏覽:913
APP如何實現下載功能 瀏覽:214
通達信源碼怎樣放到桌面 瀏覽:643
程序員的腦袋會禿嗎 瀏覽:453
為什麼eve登錄啟動不進去伺服器 瀏覽:270
微信招生app哪個好用 瀏覽:233
寶可夢劍盾啟動文件在哪個文件夾 瀏覽:765
壓縮機比容 瀏覽:117
python自動化測試面試 瀏覽:949
買便宜點的鞋子去哪個app買 瀏覽:890
android中個人頁面 瀏覽:710
程序員那麼可愛逸城前女友 瀏覽:577
我的世界如何獲得伺服器服主 瀏覽:19
相冊本地加密 瀏覽:228
壓縮文件夾共享 瀏覽:754
梁一端箍筋加密長度設置 瀏覽:447
linux開啟路由 瀏覽:869
ping命令設置包大小和周期 瀏覽:673