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() 関数がファイルまたはディレクトリを開いたかどうかを知るにはどうすればよいですか?