/ * *実行した後、別のプロセスがファイルに書き込まれた内容を読み取ろうとする * / 書式#include <stdio.hに> する#include <unistd.h> 書式#include <stdlib.h>に含ま 書式#include <fcntl.h> 書式#include < ストリング .H> INTメイン(ボイド) { チャー BUF [ 1024 ]; CHAR * STR = " ---------- -------- secesuss TEST2 \ N-書く"を、 INT RET; SLEEP (2); // スリープ2秒は、データがtest1のtest.txtというファイルを書かれていることを保証するために、int型 FD =オープン(" test.txtのを" 、O_RDWR); // 書かれたファイルtest.txtというのtest1のデータを読み込もう RET =読む(FD、BUF、はsizeof (BUF)); // 画面に読み取り、印刷データ 書き込み(STDOUT_FILENO、bufは、RET ); // そのまま書き込み位置test.txthファイルへの書き込みデータ の書き込み(FD、STR、STRLEN(STR)); のprintf(" TEST2リード/フィニッシュ\ N-書く" ;) 閉じる(FD)を、 リターン 0 ; }
/ * *実行する前に、ファイルにデータを書き込むことがあるtest.txt * / 書式#include <stdio.hに> する#include <unistd.h> 書式#include <fcntl.h> 書式#include <stdlib.h>に含ま する#include < 文字列の.h > の#define N. 5 INTメイン(ボイド) { チャー BUF [ 1024 ]; CHAR * STR = " -------------- ------------- secesuss \ N- " ; int型RET; int型のfd =オープン(" test.txtの"、O_RDWR | O_TRUNC | O_CREAT、0664 ); // 直接打开文件写入数据 ライト(FD、STR、strlenを(STR))。 printf(" test1のは、test.txtの仕上げ\ nのに書き込みます" ); スリープ(N)。 lseek(FD、0 、SEEK_SET)。 RET =読み取る(FD、BUF、はsizeof (BUF))。 RET = ライト(STDOUT_FILENO、BUF、RET)。 場合(保持== - 1 ){ perrorは(" 第2のエラーを書き込みます" )。 出口(1 )。 } 近い(FD)。 リターン 0 ; }