Когда я пытаюсь прочитать данные из файла и распечатать их, printf выводит на терминал пустую строку.
Использование: Ubuntu 16.04.
gcc версия5.4.0.
ядро: 4.15.0-43-generic
Попытка:
add fsync вызов после записиданные.
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
#define SIZE 6
int main()
{
int ret = -1;
char buffer[SIZE] = { 0 };
int fd = open("data.txt", O_CREAT | O_RDWR, 0666);
if (fd < 0)
{
perror("open()");
goto Exit;
}
if (write(fd, "Hello", 5) < 0)
{
perror("write()");
goto Exit;
}
fsync(fd);
if (read(fd, buffer, SIZE - 1) < 0)
{
perror("read()");
goto Exit;
}
printf("%s\n", buffer);
ret = 0;
Exit:
close(fd);
return ret;
}
Ожидается: должен записывать и считывать данные из / в файл.
Факт: данные записываются в файл,После прочтения данных printf печатает пустую строку.