Я пробовал как создать, так и открыть системный вызов.Оба работают одинаково, и я не могу предсказать разницу между ними.Я прочитал справочную страницу.Он показывает «Open может открывать специальные файлы устройства, но creat не может их создавать».Я не понимаю, что такое специальный файл.
Вот мой код,
Я пытаюсь прочитать / записать файл, используя системный вызов creat.
#include<stdio.h>
#include<fcntl.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<unistd.h>
#include<errno.h>
#include<stdlib.h>
int main()
{
int fd;
int written;
int bytes_read;
char buf[]="Hello! Everybody";
char out[10];
printf("Buffer String : %s\n",buf);
fd=creat("output",S_IRWXU);
if( -1 == fd)
{
perror("\nError opening output file");
exit(0);
}
written=write(fd,buf,5);
if( -1 == written)
{
perror("\nFile Write Error");
exit(0);
}
close(fd);
fd=creat("output",S_IRWXU);
if( -1 == fd)
{
perror("\nfile read error\n");
exit(0);
}
bytes_read=read(fd,out,20);
printf("\n-->%s\n",out);
return 0;
}
Я экспортировал содержимое «Hello» для печати в файл «output».Файл успешно создан.Но содержание пусто