【linux】forkは親プロセスがファイルを書き、サブプロセスがファイルを読むことを実現する
1067 ワード
#include
#include
#include
#include
#include
#include
#include
#include
void ReadFile()
{
char buf[32] = {0};
int fd = open("file.tmp", O_RDONLY);
if (-1 == fd)
{
perror("open");
exit(1);
}
int ret = read(fd, buf, sizeof(buf));
if (-1 == ret)
{
perror("read");
exit(1);
}
printf("Child read from txt : %s
", buf);
}
void WriteFile()
{
char buf[32] = "helloworld";
int fd = open("file.tmp", O_WRONLY | O_CREAT | O_EXCL, S_IRWXU);
if (-1 == fd)
{
perror("open");
exit(1);
}
int ret = write(fd, buf, strlen(buf));
if (-1 == ret)
{
perror("write");
exit(1);
}
}
int main()
{
pid_t pid;
pid = fork();
if (-1 == pid)
{
perror("fork");
exit(1);
}
else if (0 == pid)
{
sleep(1);
ReadFile();
}
else
{
WriteFile();
sleep(2);
}
return 0;
}