나는 creat와 open 시스템 호출을 모두 시도했다. 둘 다 같은 방식으로 작동하며 나는 그들 사이의 차이를 예측할 수 없습니다. 맨 페이지를 읽었습니다. "열기는 장치 특수 파일을 열 수 있지만 creat은 만들 수 없습니다"를 보여줍니다. 나는 특별한 파일이 무엇인지 이해하지 못한다.c에서 열린 시스템 호출과 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"내용을 출력하지 않았습니다. 파일이 성공적으로 작성되었습니다. 그러나 내용이 비어 있습니다
감사 요아킴 Pileborg :) – Dinesh