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 相比:
- system 更加简单粗暴。
- 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 开机自启动,绝对路径加程序名字