ファイルから読み取ってターミナルに出力する簡単なプログラムを書こうとしています。しかし、ファイルを開いた後、プログラムはハングします。読み部分を外せばうまくいきます。何が悪いのかわかりません。誰かが助けることができますか?お願いします!
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
int fd,bytes;
char buffer[10];
char path[ ] = "file";
if(fd = open(path, O_RDONLY) < 0) {
perror("open");
exit(EXIT_FAILURE);
} else {
printf("opened %s\n", path);
}
do {
bytes = read(fd,buffer,10);
printf("%d", bytes);
} while( bytes > 0);
if(close(fd) < 0) {
perror("close");exit(EXIT_FAILURE);
} else{
printf("closed %s\n", path);
}
exit(EXIT_SUCCESS);
}