linux课本第81页的程序
2015-10-17 12:36
561 查看
程序功能是在用户态下执行命令的一个实例程序。
父进程打印控制菜单,并且接收命令。
子进程去根据命令处理任务。
父进程继续打印菜单并接收命令。
源码如下:
具体调用的函数和代码都是很基础的,不做解释。
父进程打印控制菜单,并且接收命令。
子进程去根据命令处理任务。
父进程继续打印菜单并接收命令。
源码如下:
#include <stdio.h> #include <stdlib.h> #include <signal.h> #include <sys/types.h> #include <sys/wait.h> #include <string.h> int main(int argc, char **argv){ pid_t pid; char cmd; char *arg_psa[] = {"ps", "-a", NULL}; char *arg_psx[] = {"ps", "-x", NULL}; while(1){ printf("-------------------------\n"); printf("输入a执行‘ps -a’命令\n"); printf("输入x执行‘ps -x’命令\n"); printf("输入q执行退出\n"); printf("-------------------------\n"); cmd = getchar(); getchar(); if((pid = fork()) < 0){ printf("fork error...\n"); return -1; } if(pid == 0){ switch(cmd){ case 'a': execve("/bin/ps", arg_psa, NULL); break; case 'x': execve("/bin/ps", arg_psx, NULL); break; case 'q': break; default: perror("wrong cmd...\n"); break; } exit(0); } else if(pid > 0){ sleep(1); if(cmd == 'q') break; } } while(waitpid(-1, NULL, WNOHANG) > 0); return 0; }
具体调用的函数和代码都是很基础的,不做解释。
相关文章推荐
- Linux/Unix 怎样找出并删除某一时间点的文件
- Linux配置防火墙 开启80端口的方法
- CentOS7 yum 安装git
- linux下gcc/g++编译用法
- Linux:获取当前进程的执行文件的绝对路径
- 嵌入式linux截图工具gsnap。。。。
- linux如何执行后台进程
- Linux核心设计依据(六)该块I/O一层
- linux 常见服务端口有那些?
- ubuntu 下如何下载linux内核源码
- 对linux的根目录执行强制递归移除
- linux下的find文件查找命令与grep文件内容查找命令
- Centos7 JDK8安装配置
- linux wake_up
- Linux中ELF格式文件介绍
- Linux设备驱动--字符设备驱动程序2
- CentOS 7 yum安装路径查询方法
- Linux文件基础操作
- 非常简单清晰的子网划分知识
- linux公社 u-boot下载