文書のLinuxプロセス通信

オープン・ファイル記述子を使用して、親と子の共有ファイル------プロセス間通信の完了。

/ * ** 
 fork_share_fd.c 
 ** * / 
書式#include <stdio.hに> 
する#include <unistd.h> 
書式#include < 文字列の.h> 
の#include <stdlib.h>に含ま
書式#include <fcntl.h> 
書式#include <sysの/wait.h> INTメイン(ボイド
{ int型FD1、FD2。pid_t pidを。
    チャー BUF [ 1024 ]。
    char * strの= " ---------親、子プロセスで共有FD ----- \ nのテスト" ; 
    PID = フォーク()。
    もし PID(<



    

0 ){ 
        perrorは(" フォークエラー" )。
        出口(1 )。
    } そう であれば(PIDの== 0 ){ 
        FD1 =オープン(" test.txtの" 、O_RDWR)。
        もし(FD1 < 0 ){ 
            perrorは(" オープンエラー" )。
            出口(1 )。
        } 
        書き込み(FD1、STR、strlenを(STR))。
        printf(" 子供がオーバー書いた...を\ n " ); 

    } { 
        FD2 =オープン(" test.txtの" 、O_RDWR);
         IF(FD2 < 0 ){ 
            perrorは(" オープンエラー" ); 
            出口(1 ); 
        } 
        SLEEP(1);                    // 子プロセスがデータの書き込みを行うことを確認

        INT LENを=読み取る(FD2、BUF、はsizeof (BUF)); 
        (STDOUT_FILENO、BUF、LEN)を書き込み、

        待機(NULL); 
    } 

    戻り 0 ; 
}

結果:

ubuntu1604 @ Ubuntuの:〜/ wangqinghe / linuxの/ 20190806 $ ./fork_share_fd

子供はオーバー書きました...

---------親、子プロセス内の共有FDのためのテスト-----

おすすめ

転載: www.cnblogs.com/wanghao-boke/p/11311730.html