当前位置: 技术问答>linux和unix
linux c的进程操作
来源: 互联网 发布时间:2016-05-13
本文导语: 1. 一个父进程可以同时fork多个子进程比如1000个进程; 2. 父进程和子进程分别执行的不同的函数;但是所有的子进程执行的是同一个函数; 比如:父进程调用函数为parent() 子进程调用函数为 children() 3. ...
1. 一个父进程可以同时fork多个子进程比如1000个进程;
2. 父进程和子进程分别执行的不同的函数;但是所有的子进程执行的是同一个函数;
比如:父进程调用函数为parent()
子进程调用函数为 children()
3. 子进程每隔1秒对对一个全局数组进行操作一次
4. 进过了100秒后父进程通过调用parent()将全局数组里的值给打印出来,同时关闭所有子进程
如果大家写过类似的程序,其实关键问题主要存在于以下几点:
1.父进程,子进程如何分别调用不同的函数执行
2.父进程,子进程如何使用程序的共享变量,数组
3.父进程终止器所有的子进程
如果有谁写过类似的程序,请给个参考例子,本人不胜感激!
2. 父进程和子进程分别执行的不同的函数;但是所有的子进程执行的是同一个函数;
比如:父进程调用函数为parent()
子进程调用函数为 children()
3. 子进程每隔1秒对对一个全局数组进行操作一次
4. 进过了100秒后父进程通过调用parent()将全局数组里的值给打印出来,同时关闭所有子进程
如果大家写过类似的程序,其实关键问题主要存在于以下几点:
1.父进程,子进程如何分别调用不同的函数执行
2.父进程,子进程如何使用程序的共享变量,数组
3.父进程终止器所有的子进程
如果有谁写过类似的程序,请给个参考例子,本人不胜感激!
|
楼主首先应该弄明白的是:
1. 某子进程操作全局数组, 操作的是"自己"的"全局数组", 不影响的其他子进程或父进程的"全局数组".
2. 父进程,子进程如何使用程序的共享变量,数组的方法是"共享内存区"
楼主先找一本Unix编程的书, 看看进程的部分和共享内存的部分, 一切都会明白了.
google一下: Unix 进程 共享内存
能找到很多,很多.
1. 某子进程操作全局数组, 操作的是"自己"的"全局数组", 不影响的其他子进程或父进程的"全局数组".
2. 父进程,子进程如何使用程序的共享变量,数组的方法是"共享内存区"
楼主先找一本Unix编程的书, 看看进程的部分和共享内存的部分, 一切都会明白了.
google一下: Unix 进程 共享内存
能找到很多,很多.
|
没错,只有线程才要考虑如何对全局变量的读写问题
线程:create_pthead()
线程:create_pthead()
|
线程:http://baike.baidu.com/view/400319.htm
#include
#include
void thread(void)
{
int i;
for(i=0;i
#include
#include
void thread(void)
{
int i;
for(i=0;i