我試了一下creat和open系統調用。兩者都以相同的方式工作,我無法預測它們之間的差異。我閱讀手冊頁。它顯示「打開可以打開設備專用文件,但創建不能創建它們」。我不明白什麼是特殊文件。c中的open和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;
}
我expted內容爲「你好」到文件「輸出」字樣。該文件已成功創建。但內容爲空
感謝約阿希姆Pileborg :) – Dinesh 2011-12-14 10:06:39