[学习笔记]父子进程共享文件描述符理解

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <unistd.h>
#include<errno.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

//演示父子进程共享文件描述符
//相当于2个fd指向同一块内存空间.
//因为2个进程共享了文件指针偏移量,所以都能向文件中有序写数据

int main(void)
{
    
    pid_t pid;

    int fd;
    fd = open("test.txt", O_WRONLY);
    if (-1 == fd)
    {
        perror("open err");
        exit(0);
    }

    pid = fork();

    if (-1 == pid)
    {
        perror("fork err");
        return 0;
    }
    if (pid > 0)
    {
        write(fd, "parent", 6);
        close(fd);
    }
    if (0 == pid)
    {
        write(fd, "child", 6);
        close(fd);
    }
    
    
    return 0;
}

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。