【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; }