我有一个任务是用fork做一个矩阵乘法,使用共享内存,然后将时间结果与没有fork的乘法进行比较,所以这是没有fork的乘法:
int matrizA[Am][An];
int matrizB[An][Bp];
//here i fill the matrix from a .txt file
int matrizR[Am][Bp];
int a,b,c;
for (a=0; a < Am; a++){
for (b = 0; b < Bp; b++)
{
matrizR[a][b] = 0;
for (c=0; c<An;
我当时正在阅读Linux开发,并试图理解fork()情况下的进程地址空间语义。当我在Kernel v2.6的上下文中阅读时,以及在新版本中,任何子版本或父版本都可能先运行,但我对以下内容感到困惑:
Back in do_fork(), if copy_process() returns successfully, the new child is woken up
and run. Deliberately, the kernel runs the child process first. In the common case of the
child simply calling exec(
我正在编写一个mini-shell,在作业控制方面遇到了一个问题。
我无法检索main函数中的数据,甚至无法检索run_command底部的数据。
我想知道如何在main中存储和成功检索信息。
typedef struct job{
int num;
pid_t pid[SIZE];
char* name[SIZE];
int occupied;
}
job jobs; <- the global variable
int run_command(........){
. .......
. .......
. result = for
以下是代码:
#include <signal.h>
#include <stdlib.h>
#include <stdio.h>
int ntimes = 0;
int main()
{
int pid,ppid;
int p_action(),c_action();
/* set parent process SIGUSR1 */
signal(SIGUSR1,p_action);
switch(pid=fork()){
case -1: /* fork failed */
perror("synchro&