私はcreatとopenシステムコールの両方を試みました。どちらも同じように動作し、私はそれらの違いを予測することはできません。私はマニュアルページを読んだ。 「オープンでデバイス特殊ファイルを開くことはできますが、creatでは作成できません」というメッセージが表示されます。私は特別なファイルが何であるか理解していません。ここでcで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」という内容を出力しませんでした。ファイルが正常に作成されました。しかし内容は空です
おかげヨアヒムPileborg :) – Dinesh