程序与进程的区别?
程序是静态的未运行的二进制文件,存储在磁盘中
进程是已经运行的二进制文件,存储在内存中
进程的内存划分图有哪几部分?
堆(存储malloc和calloc出来的空间)、栈(局部变量、环境变量、命令行参数)、数据段(全局变量、静态变量、常量)、代码段(用户代码、系统初始化的代码)
进程的状态转换?
时间片的定义:
分时操作系统分配给每个正在运行的系统的一段微观上的时间
进程的控制命令:
ps:查看当前终端的进程
ps -e: 查看当前系统的所有进程
kill 给进程pid发送一个信号(sigstop、sigcont)
killall 给进程名发送一个信号
所有进程都有其父进程,最开始的进程有init进程和system进程创建
创建进程的函数:fork(),fork函数会连续返回两个值,一个是子进程返回零,一个是父进程返回大于零。
父子进程间不一样的属性有哪些?
pid号、记录锁、挂起的信号
孤儿进程:
当父进程比子进程先死亡,子进程就会变为孤儿进程,所有孤儿进程都由init进程进行回收。(子进程比父进程先死亡可以防止孤儿进程的产生)
僵尸进程:
子进程死亡,父进程未回收子进程的资源(调用wait),子进程变为僵尸进程
wait函数的作用:
用来回收子进程的资源,wait((int)&state),根据状态码得知子进程的状态
状态码如下:
获取pid的函数有哪些?
getpid()获取当前进程的pid号
getppid()获取父进程的pid号
exit函数()的作用?
使得进程退出,从运行状态进入到僵尸态。
execl()函数的作用?
让进程重新加载其他程序文件。根据路径名和需要传递给函数的参数进行加载
system(const char *command)函数的作用,通过一个子进程执行程序。
超级接口popen(const char*command,char * type)的作用?
加载一个进程并把进程的数据通过文件流指针的方式返回
进程间的通信方式有哪七种?
文件通信、管道文件、信号、网络socket、消息队列、共享内存、信号量
管道文件中无名管道的特点?
只能用于父子进程间的通信。
有名管道的特点?
有名管道用于不同进程间的通信,其操作与文件操作一样。
linux命令mkfifo创建有名管道
操作的步骤一般为:open打开有名管道,read/write操作有名管道,关闭有名管道
alarm函数的作用:
在一定时间后发送闹钟信号。
关于时间处理的函数有哪些?
文章来源:https://www.toymoban.com/news/detail-729244.html
信号屏蔽?略文章来源地址https://www.toymoban.com/news/detail-729244.html
到了这里,关于c语言系统编程之多进程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!