📄 clientintr2.c
字号:
#include "unpipc.h"voidsig_chld(int signo){ return; /* just interrupt door_call() */}intmain(int argc, char **argv){ int fd; long ival, oval; door_arg_t arg; if (argc != 3) err_quit("usage: clientintr2 <server-pathname> <integer-value>"); fd = Open(argv[1], O_RDWR); /* open the door */ /* 4set up the arguments and pointer to result */ ival = atol(argv[2]); arg.data_ptr = (char *) &ival; /* data arguments */ arg.data_size = sizeof(long); /* size of data arguments */ arg.desc_ptr = NULL; arg.desc_num = 0; arg.rbuf = (char *) &oval; /* data results */ arg.rsize = sizeof(long); /* size of data results */ Signal(SIGCHLD, sig_chld); if (Fork() == 0) { sleep(2); /* child */ exit(0); /* generates SIGCHLD */ } /* 4parent: call server procedure and print result */ Door_call(fd, &arg); printf("result: %ld\n", oval); exit(0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -