2016-12-09 80 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 –