void str_cli(FILE *fp, int sockfd)
{
pid_t pid;
char sendline[MAXLINE], recvline[MAXLINE]; if ( (pid = fork()) == ) { /* child: server -> stdout */
while (read(sockfd, recvline, MAXLINE) > )
fputs(recvline, stdout); kill(getppid(), SIGTERM); /* in case parent still running */
exit();
} /* parent: stdin -> server */
while (fgets(sendline, MAXLINE, fp) != NULL)
writen(sockfd, sendline, strlen(sendline)); shutdown(sockfd, SHUT_WR); /* EOF on stdin, send FIN */
pause();
return;
}
相关文章
- 10-29python-在使用gevent的第一个函数完成后,如何生成另一个函数?
- 10-29FastAPI(11)- 函数参数类型是列表,但不使用 typing 中的 List,而使用 list,会怎么样?
- 10-29关于STL中iota()函数的使用
- 10-29Python的hasattr() getattr() setattr() 函数使用方法详解
- 10-29Python: 字符串格式化format()函数的使用
- 10-29c – 使用decltype为函数生成的非类型模板参数
- 10-29SAP 使用较频繁的日期时间处理函数总结
- 10-29关于C语言中fseek函数的使用
- 10-29Delphi中Inputbox 和Inputquery 函数的使用
- 10-29Delphi数组复制(只能使用System单元的Move函数)