3.5.4 实验内容
题目一:利用无名管道编写程序实现:父进程向子进程发送命令,子进程获取命令,并解析命令并执行命令。
实验提示:
#include<unistd.h> /* pipe() */
#include<stdio.h>
#include<sys/types.h> /* pid_t */
#define MAXLINE 4096
int main(void)
{
int n;
int fd[2];
pid_t pid;
char line[MAXLINE];
//创建管道
if(pipe(fd)<0)
printf("pipe error\n");
//创建子进程
if((pid=fork())<0)
printf("fork error\n");
else if(pid>0) /* parent*/
{
//父进程发命令
}else /* child*/
{
//子进程接收命令并处理
}
return 1;
}
题目二:利用有名管道编写程序实现:进程A向进程B传送任意字符串,进程B将收到的字符串反向,传递给进程A。
实验提示:
Proc A
#define FIFO "/tmp/fifo"
int fd;
char s[MAXLINE];
unlink(FIFO);
if(//创建管道)
{
出错处理
}
fd =open(FIFO,O_WRONLY);
//提示用户输入信息并存入到s中
//写入管道
PROC B
#define FIFO "/tmp/fifo"
int fd;
char line[MAXLINE];
//打开管道
//读取管道数据
//处理数据
题目一:利用无名管道编写程序实现:父进程向子进程发送命令,子进程获取命令,并解析命令并执行命令。
实验提示:
#include<unistd.h> /* pipe() */
#include<stdio.h>
#include<sys/types.h> /* pid_t */
#define MAXLINE 4096
int main(void)
{
int n;
int fd[2];
pid_t pid;
char line[MAXLINE];
//创建管道
if(pipe(fd)<0)
printf("pipe error\n");
//创建子进程
if((pid=fork())<0)
printf("fork error\n");
else if(pid>0) /* parent*/
{
//父进程发命令
}else /* child*/
{
//子进程接收命令并处理
}
return 1;
}
题目二:利用有名管道编写程序实现:进程A向进程B传送任意字符串,进程B将收到的字符串反向,传递给进程A。
实验提示:
Proc A
#define FIFO "/tmp/fifo"
int fd;
char s[MAXLINE];
unlink(FIFO);
if(//创建管道)
{
出错处理
}
fd =open(FIFO,O_WRONLY);
//提示用户输入信息并存入到s中
//写入管道
PROC B
#define FIFO "/tmp/fifo"
int fd;
char line[MAXLINE];
//打开管道
//读取管道数据
//处理数据