📄 serverunref2.c
字号:
#include "unpipc.h"voidservproc(void *cookie, char *dataptr, size_t datasize, door_desc_t *descptr, size_t ndesc){ long arg, result; if (dataptr == DOOR_UNREF_DATA) { printf("door unreferenced\n"); Door_return(NULL, 0, NULL, 0); } arg = *((long *) dataptr); printf("thread id %ld, arg = %ld\n", pr_thread_id(NULL), arg); sleep(6); result = arg * arg; printf("thread id %ld returning\n", pr_thread_id(NULL)); Door_return((char *) &result, sizeof(result), NULL, 0);}intmain(int argc, char **argv){ int fd; if (argc != 2) err_quit("usage: server1 <server-pathname>"); /* 4create a door descriptor and attach to pathname */ fd = Door_create(servproc, NULL, DOOR_UNREF); unlink(argv[1]); Close(Open(argv[1], O_CREAT | O_RDWR, FILE_MODE)); Fattach(fd, argv[1]); /* 4servproc() handles all client requests */ for ( ; ; ) pause();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -