gpt4 book ai didi

c - C 中的 open() 函数

转载 作者:太空宇宙 更新时间:2023-11-04 06:41:38 25 4
gpt4 key购买 nike

打开一个目录后,我想检查一个命令(例如 ls)是否驻留在给定的目录中,但打开后返回一个整数,我认为......在标记化之后,我留下了一些目录......那我该怎么办做??有人告诉我只使用 open() 函数 :((

int       Account_Master;
. . .
Account_Master = open ("accounts.dat", O_RDONLY);
if (Account_Master >0) {
printf ("Open succeeded.\n");

这是我使用的示例.. 如果没有用,打开文件有什么意义?

最佳答案

返回的整数可以赋给其他函数,如readfstatclose。如果你只是想检查一个文件是否存在,使用 stat :

#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>
int main(int argc, char* argv[]) {
struct stat statInfo;
char* fn = argc>1 ? argv[1] : "/bin/ls";
int res = stat(fn, &statInfo);
if (res != 0) {
printf("File %s does not exist.\n", fn);
return 1;
}
if (statInfo.st_mode & S_IXUSR) {
printf("Owner can execute the file %s\n", fn);
return 0;
}
printf("File %s is there, but not executable.\n", fn);
return 2;
}

如果您不想检查单个文件,而是想检查整个目录,请查看readdir。相反。

关于c - C 中的 open() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7220216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com