Linux进程3(system,popen,fork,守护进程)

exec 族函数 和 fork 函数的结合

做一个类似有客户端连接了服务器,服务端创建一个子进程,然后去修改 test.config 文件中的 LENGTH 的值把它改成 8 。

注意:exec 运行成功后会去运行 xiuGaiPeiZhiWenJian.out 这个程序,不会再往下面的代码执行了。

system 函数

system 函数作用system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的进程。在调用system()期间SIGCHLD 信号会被暂时搁置,SIGINT和SIGQUIT 信号则会被忽略

system 函数头文件及原型

#include<stdlib.h>

int system(const char *command)

system 和 exec 相比:

  1. system 更加简单粗暴。
  2. system 执行后还会继续往原程序走下去。而 exec 是不会的。

system和popen的对比:

比system在应用中的好处:可以获取运行的输出结果

​popen()​ 函数是一个标准 C 库函数,用于在一个新进程中执行一个 shell 命令,并提供一个管道用于读取该命令的输出。函数原型如下:

FILE *popen(const char *command, const char *type);

  • ​command​ 参数是一个字符串,表示要在新进程中执行的 shell 命令。
  • ​type​ 参数是一个字符串,表示使用管道的方式。通常为 "r"​(读取)或 "w"​(写入)。

​popen()​ 函数会创建一个进程来执行指定的 shell 命令,并返回一个指向用于读取或写入该进程的标准 I/O 流的文件指针。通过这个文件指针,可以读取或写入这个子进程的标准输出或标准输入。

需要注意的是,使用 popen()​ 函数时要小心处理输入的命令,以避免潜在的安全风险,比如避免使用用户输入的命令直接作为参数传递给 popen()​。

在使用完 popen()​ 函数后,应该使用 pclose()​ 函数来关闭文件指针,以确保相关的进程资源被正确释放。

进程的状态:

守护进程---先了解(是驱动知识):

基本特点

直接借助damon()函数完成

sudo vi /etc/rc.local 开机自启动,绝对路径加程序名字

sudo vi /etc/rc.local 开机自启动,绝对路径加程序名字

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值