Linux学习之实验篇共 7篇
exit(EXIT_FAILURE);
} 保存退出$wq
(2) 用gcc命令将文件编译链接,生成目标文件a2.out
$gcc –o a2.out a2.c
(3) 运行目标文件a2.out
$./a2.out
查看运行结果,并将其记录到实验报告中。
3. 用fork函数创建管道
(此为实验七的内容)
(1) 新建一个C
语言程序a3.c
$vi a3.c
程序目的:先在内存中开辟出一段缓冲区,
建立一个管道。再用fork函数创建一个新进程。若在子进程中,就读出管道中的信息;若在父进程中,就向管道写入信息。
a2.c文件内容:
#include<unistd.h>
#include<stdlib.h> #include<stdio.h>
#include<string.h>
int main() {
pid_t fork_result;
memset(buffer,’\0’,sizeof(buffer)); if(pipe(file_pipes)==0) { fork_result=fork();
if(fork_result= =-1) { fprintf(stderr, “Fork failure” exit(EXIT_FAILURE); }
我们对fork的工作情况已经比较了解了,所以如果fork_result等于0,就说明我们是在子进程里,如下所示:
if(fork_result==0) {
data_processed=read(file_pipes[0],buffer,BUFSIZ);
printf(“Read %d bytes: %s\n”exit(EXIT_SUCCESS); }
否则,我们就是在父进程里,如下所示: