资源简介
使用fork(),exec(),dup2(), pipe(),open()系统调用完成与下列shell命令等价的功能:grep -v usr result.txt
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#define MAX_PARA_NO 128
int main()
{
int n pfd[2];
char buffer[128] = ““;
char *in *out *buffer2 *cmd1 *cmd2;
char *para1[MAX_PARA_NO] *para2[MAX_PARA_NO];
strcpy(buffer “grep -v usr < /etc/passwd | wc -l > result.txt“);//待处理命令
signal(SIGCLD SIG_DFL);//忽略SIGCLD信号,子进程终止后,系统会自动销毁僵尸子进程
buffer2 = strstr(buffer “|“);//定位管道位置
in = strstr(buffer “<“); //定位重定向输入文件位置
out = strstr(buffer “>“);//定位重定向输出文件位置
if (in) {
*in = ‘\0‘;
in = strtok(in + 1 “ <>\t\n“);//获取输入重定向文件名
}
if (out) {
*out = ‘\0‘;
out = strtok(out + 1 “ <>\t\n“);//获取输出重定向文件名
}
if (! buffer2)
exit(0);
else {
*buffer2 = ‘\0‘;
buffer2++;
}
cmd2 = strtok(buffer2 “ <>\t\n“);//获取第二个命令
if (! cmd2)
exit(1);
//获取第二个命令及选项
para2[0] = cmd2;
for (n = 1; para2[n]; n++) {
para2[n] = strtok(N
相关资源
- 管道铺设算法三级项目最小生成树
- Windows进程间通信之共享内存
- Pipe管道工具.7z
- 目录重定向源代码工程
- 命名管道实现进程间通信程序
- Win32标准输出重定向VS2015通用实现
- 黑板风格,管道风格,调用返回风格
- 双管道CreatePipe与cmd.exe进程间通信的有
- 插入式流量计在大口径管道上的应用
- 汇编程序——弱智的管道游戏
- 操作系统实验全部题目+完整代码:
- 线程和进/线程管道通信实验操作系统
- 易语言匿名管道类
- 利用信号进行进程间通信
-
Qt Remote ob
ject(QtRO)进程间通信De - printf函数要调用的文件PUTCHAR.c
- 进程间通信之管道通信
- WinCC管道流动控件
- wincc制作管道流体流动动画的方法
- 操作系统实验四 进程的管道通信 实验
- 基于管道过滤器风格的单词排序程序
- Qt使用WM_COPYDATA消息进行进程通信 de
- 进程间通信设计。用msgget(),msgs
- FIFO配合管道PIPE,实现FIFO传递数据,
- 进程的管道通信 实验报告
- N皇后问题用软件体系各种风格实现
- 支持并发的多人聊天程序
- 论文研究 - 以苦艾藜为抑制剂的海洋
- 圆形管道风速测定与校正方法实验
- 抽采瓦斯管道内的水和杂物处理技术
评论
共有 条评论