C语言中进程与系统调用

本文探讨了C语言中系统调用的概念,包括printf()背后的机制,并重点讲解了system()、exec()函数及其安全性。进一步,介绍了fork()函数用于创建子进程,并解释了如何处理父子进程间的交互,如使用waitpid()或wait()函数。文章还简述了进程的基本概念,如PID、堆栈、输入输出重定向,并提到了exit()函数在结束进程中的作用。最后,提及了如何在C语言中连接两个进程。
摘要由CSDN通过智能技术生成

这部分内容比较多,我还是一点一点的写,当然自己还是参考《headfirst c》一书进行自己编写。

首先说一下系统调用,我们都知道当我写一个.c函数时譬如使用printf()函数向屏幕输出,这个时候其实后台操作系统为我们做了很多事,帮助我们告诉硬件该如何做之类的,还有一类函数,叫做系统调用,感觉就是提供一个函数使用户可以接触到系统内核从而控制硬件等

比较简单的就是system()函数

int main()
{
 system("echo I am single");//系统会执行system后面引号的内容
}
//程序保存在.c文件中,不过貌似不用加头文件就可以。

但是system()由于他比较简单,所以可能安全方面等地方不是很好。

下面介绍exec()函数,也就是英文执行execute的意思,他的意思和system()差不多,也是执行一段新的程序,不过如果exec()里面的程序如果可以执行成功就会停止当前进程。下面结合例子说一下:

exec()函数组(其实有好几个函数)的具体操作我推荐可以看一下
《linux c语言 fork() 和 exec 函数的简介和用法》博客,也是在csdn上写的。里面介绍了函数的具体形式。

//这个函数是我想在exec()调用时运行的函数,我保存在c_learning.c文件中。
#include<stdio.h>
#include<std
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值