Ⅰ C語言有什麼函數可以判斷某進程是否存在
C語言沒有庫函數可以做到這一點。但是在linux下,有一些替代方案。
見下:
基本思路是先定義一個FILE指針,用該指針接收popen()執行ps指令的返回值,再從指針中讀取數據到緩存,根據得到的數據判斷進程是否存在,怎麼操作要看ps的參數了。
#include<unistd.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<stdio.h>
#include<stdlib.h>
#include<fcntl.h>
#include<limits.h>
#defineBUFSZPIPE_BUF
voiderr_quit(char*msg)
{
perror(msg);
exit(EXIT_FAILURE);
}
intmain(intargc,char*argv[])
{
FILE*fp;
intcount;
charbuf[BUFSZ];
charcommand[150];
if(argc!=2)
{
printf("USAGE:example<processname> ");
exit(EXIT_SUCCESS);
}
else
sprintf(command,"ps-C%s|wc-l",argv[1]);
if((fp=popen(command,"r"))==NULL)
err_quit("popen");
if((fgets(buf,BUFSZ,fp))!=NULL)
{
count=atoi(buf);
if((count-1)==0)
printf("%snotfound ",argv[1]);
else
printf("process:%stotalis%d ",argv[1],(count-1));
}
pclose(fp);
exit(EXIT_SUCCESS);
}
Linux C程序快速文件查找是Linux系統中解決快速查找文件的一種有效辦法。藉助Linux C程序,可以實現快速地查找文件在哪裡,節省寶貴的計算機時間。本文將介紹Linux C程序快速文件查找的相關知識以及具體實現步驟,以便大家更方便地利用Linux C程序查找文件。
首先,Linux C程序快速文件查找的具體實現方式:首先得到查詢的文件名,然後從指定的目錄中去遍歷每一個子文件夾,直至找到該文件為止。也就是說,遍歷子文件夾來獲取文件信息,找到目標文件之後,返回結果。因此,Linux C程序快速文件查找中最重要的操作就是遍歷子文件夾的過程。Linux下的遍歷函數有兩個:scandir函數和readdir函數,其中scandir函數是使用更常見的,但scandir函數僅適用於文件名稱,不能將文件屬性作為過濾條件,它只能按照文件名稱過濾,不能指定文件屬性作為過濾,而readdir函數可以指定文件屬性作為可以指定文件屬性作為過濾條件,但是由於沒有採用樹形查找,所以它無法實現快速查找。
此外,Linux C程序快速文件查找還可以採用遞歸+DFS的方式來實現,也就是將遍歷子文件夾的工作交給遞歸函數完成;而查找主要的操作交給DFS的函數來實現。有關Linux C程序快速文件查找的具體實現,可以參考相關技術文檔,以更好地實現Linux C程序快速文件查找。
至此,本文介紹了Linux C程序快速文件查找的相關信息,以及具體實現步驟。通過使用Linux C程序快速文件查找的方式,可以有效地節省寶貴的計算機時間,讓大家更方便地完成文件查找操作。希望以上介紹可以幫助到大家,以便大家能夠更有效地使用Linux C程序查找文件。
Ⅲ linux c判斷文件是否存在
intmain(int, argc, char **, argv){
FILE *Bootfp; /* access channel *//* Open channel to boot image */ if ((Bootfp = fopen("文件名", "r")) == NULL) { fprintf(stderr, "Cannot open %s\n", "文件名"); exit(1); }
}
Ⅳ linux怎樣實現一個C函數檢查文件夾是否存在,如果不存在,創建它,只能使用標准庫
這個玩意有標准庫,看書上的例字,一定是有寫的,
就是在存取文件的那部分章節。
ps:你搜io.h,file.h,應該就有……
Ⅳ linux判斷是不是文件且非空
比如當前目錄下有個文件名稱為abc.txt
如果 要判斷abc.txt是不是標准文件可以使用回-f參數
if [ -f ./abc.txt ];then
echo "abc.txt is regular file"
fi
要判斷是答否為空,使用-s參數
if [ -s ./abc.txt ];then
echo "abc.txt is not empty!"
fi
簡單的可以這樣寫
[ -f "./abc.txt" ] && echo 'filename is file!' || [ -s "./abc.txt" ] && echo 'filename is not empty!'
另外文件類型除了普通文件還有很多
-L 文件是一個符號鏈接
-b 文件是一個塊設備
-c 文件是一個字元設備
-p 文件是一個管道
-S 文件是一個socket
-t 文件與一個終端相關聯