Ⅰ 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 文件与一个终端相关联