2016-12-09 81 views
0

我需要打印一条消息,通知用户进程已从内核调用sys_fork分叉。 我在sys_fork()函数中添加了命令printf("process forked\n");,但没有发生任何事情。 这是正确的还是我必须做别的?任何帮助?Minix sys_fork()打印消息

代码

#include "syslib.h" 

PUBLIC int sys_fork(parent, child, child_endpoint, map_ptr, flags, msgaddr) 
endpoint_t parent;  /* process doing the fork */ 
endpoint_t child;  /* which proc has been created by the fork */ 
endpoint_t *child_endpoint; 
struct mem_map *map_ptr; 
u32_t flags; 
vir_bytes *msgaddr; 
{ 
/* A process has forked. Tell the kernel. */ 

    message m; 
    int r; 

    m.PR_ENDPT = parent; 
    m.PR_SLOT = child; 
    m.PR_MEM_PTR = (char *) map_ptr; 
    m.PR_FORK_FLAGS = flags; 
    r = _kernel_call(SYS_FORK, &m); 
    *child_endpoint = m.PR_ENDPT; 
    *msgaddr = (vir_bytes) m.PR_FORK_MSGADDR; 

    printf("process forked\n"); //the modification I made 

    return r; 
} 

回答

0
从CEID

嗨anna_jennifer!

你必须把printf放在/kernel/system/do_fork.c里面,然后返回OK;

+0

此内容只适用于English阅读打开。 = d –

+0

Ανκαταφέρειςκαιλύσειςτο3个ρίξεκανα尖端:P –

+0

χαχαχλωμοτοβλεπωνατολυνω..:P –