厦门安岭路网站建设,昆明网页制作设计,网络营销策划书2000字,株洲网站建设企业父子进程#xff1a; 
父子进程的变量之间存在着读时共享#xff0c;写时复制原则 
无名管道#xff1a; 
无名管道仅能用于有亲缘关系的进程之间通信如父子进程 
代码#xff1a; 
#include stdio.h
#include unistd.h
#include sys/types.h
#inc…父子进程 
父子进程的变量之间存在着读时共享写时复制原则 
无名管道 
无名管道仅能用于有亲缘关系的进程之间通信如父子进程 
代码 
#include stdio.h
#include unistd.h
#include sys/types.h
#include sys/fcntl.h
#include stdlib.h#define N 100int main(int argc, const char *argv[]){pid_t pid;int fdr, fdw;ssize_t nbyte;int fd[2];char buf[N]  ;if(argc ! 1  argc ! 3){printf(number error\n);exit(0);}if((fdr  open(argv[1], O_RDONLY))  0){printf(read open error\n);exit(0);}if((fdw  open(argv[2], O_CREAT|O_WRONLY|O_TRUNC, 0664))  0){printf(write open error\n);exit(0);}if(pipe(fd)  0){printf(pipe error\n);exit(0);}pid  fork();//创建子进程if(pid  0){printf(fork error\n);exit(0);}else if(pid  0){ // 子进程 while((nbyte  read(fd[0], buf, N))  0){ // 管道读取端读取消息 write(fdw, buf, nbyte); // 写入文件 } }else{while((nbyte  read(fdr, buf, N))  0){ // 在被读写的文件中读取数据 write(fd[1], buf, nbyte); // 在管道写入端写入数据 }}return 0; 
}解释 
父进程打开并读取读文件中的数据并将数据放入无名管道的写入端子进程从无名管道的读取端读取数据并写入自己事先打开或创建的接受文件直到管道内没有数据最终文件实现复制效果。 
注意read函数返还值为真实读取的数据N为读取的数据 
效果