我想用 read() 函数读取文件,这是我的代码源:
char *buf;
int bytesRead;
int fildes;
char path[128];
mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH;
int flags = O_RDONLY;
printf("\n%s-->Donner l'emplacement du fichier :%s ", CYAN_NORMAL, RESETCOLOR);
scanf("%s", path);
fildes = open(path, flags, mode);
if(fildes == -1){
printf("\nImpossible de lire le fichier. Réessayez plus tard. (%s)",strerror(errno));
}else{
while ((bytesRead = read(fildes, buf, sizeof buf)) > 0)
{
write(STDOUT_FILENO, buf, bytesRead);
}
}
问题是当我将目录作为程序读取它的路径时,并显示一个空行,就好像它是一个空文件一样。
我只想读取文件,并且当我将目录作为路径时,我希望我的程序显示一条消息。
我如何知道 open() 函数是否打开了文件或目录?