system、 exec函数族、fork函数用法说明
发布日期:2021-06-23 04:43:41
浏览次数:7
分类:技术文章
本文共 1663 字,大约阅读时间需要 5 分钟。
system(), exec函数族, fork函数用法说明
启动一个新线程的方式:
-
system()
该函数经常用来在C程序中调用shell脚本或者命令行程序.
特点:
效率低下,首先需要创建一个shell, 然后配置shell环境,之后再执行相应的命令。
对shell环境的依赖很大。
-
exec() 函数族
也用来创建新的进程,但会替换原先的进程
int execl(const char *path, const char *arg0, …, (char *)0);
int execp(const char *file, const char *arg0, …, (char *)0);
int execle(const char *path, const char *arg0, …, (char *)0, char *const envp[]);
int execv(const char *path, const char *argv[]);
int execvp(const char *file, const char *argv[]);
int execve(const char *path, const cha *argv[], char *const envp[])
-
fork()
复制原先的进程环境,从而创建一个新的子进程0
示例:
#include#include #include #include #include #include #include #include "../main/basic_utilits.h"void system_demo(){ printf("Run a script file in C envirenment\n"); system("../shell/mkPasswd.sh 10"); system("ps aux | awk '{print $11}' | sort | uniq -c | sort -nr | awk '{print $2}' | head"); printf("shell script over\n");}void exec_funcs(){ char *const ps_argv[] = { "ps", "ax", 0}; char *const ps_envp[] = { "PATH=/bin:/usr/bin:/usr/local/bin:/sbin", "TERM=console", 0}; execl("/bin/ps", "ps", "-ax", NULL); execlp("ps", "ps", "ax", NULL); execle("/bin/ps", "ps", "ax", NULL, ps_envp); execv("/bin/ps", ps_argv); execvp("ps", ps_argv); execve("/bin/ps", ps_argv, ps_envp);}void fork_demo(){ pid_t pid; int exit_code = 0; char *message = NULL; int count = 0; int i = 0; pid = fork(); switch(pid){ case -1: printf("fork_demo: fork error\n"); break; case 0: exit_code = 37; count = 10; message = "This is child process\n"; break; default: exit_code = 0; count = 5; message = "This is parent process\n"; break; } for(i=0;i
转载地址:https://blog.csdn.net/s2603898260/article/details/105940774 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关注你微信了!
[***.104.42.241]2024年03月30日 19时11分28秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【剑指OFFER】46. 把数字翻译成字符串
2019-04-26
【剑指OFFER】47. 礼物的最大价值
2019-04-26
【力扣】90. 子集 II
2019-04-26
【剑指OFFER】48. 最长不含重复字符的子字符串
2019-04-26
【力扣】80. 删除有序数组中的重复项 II
2019-04-26
【剑指OFFER】50. 第一个只出现一次的字符
2019-04-26
【剑指OFFER】57 - II. 和为s的连续正数序列
2019-04-26
【Java】 用PriorityQueue实现最大最小堆
2019-04-26
【剑指OFFER】49. 丑数
2019-04-26
【力扣】179. 最大数
2019-04-26
【剑指OFFER】56 - I. 数组中数字出现的次数
2019-04-26
天池新人赛-工业蒸汽量预测-排名150
2019-04-26
天池新人实战赛o2o优惠券使用预测-排名181
2019-04-26
资金流入流出预测-挑战Baseline-排名445 /122.17
2019-04-26
第四届工业大数据创新竞赛-注塑成型工艺的虚拟量测和调机优化-决赛排名22
2019-04-26
大数据时代的Serverless工作负载预测-排名80_0.313
2019-04-26
python爬虫爬取_腾讯位置大数据_人口迁徙图16年至今数据
2019-04-26
python爬虫爬取_高德地图_主要城市迁徙意愿排行榜_19年至今数据
2019-04-26
联通手机信令大数据的处理分析与可视化
2019-04-26
CNC机床刀具寿命预测
2019-04-26