strecho.c

来自「linux网络编程中的经典源码」· C语言 代码 · 共 35 行

C
35
字号
#include	"unp.h"ssize_t	read_cred(int, void *, size_t, struct cmsgcred *);voidstr_echo(int sockfd){	ssize_t			n;	int			i;	char			buf[MAXLINE];	struct cmsgcred	cred;again:	while ( (n = read_cred(sockfd, buf, MAXLINE, &cred)) > 0) {		if (cred.cmcred_ngroups == 0) {			printf("(no credentials returned)\n");		} else {			printf("PID of sender = %d\n", cred.cmcred_pid);			printf("real user ID = %d\n", cred.cmcred_uid);			printf("real group ID = %d\n", cred.cmcred_gid);			printf("effective user ID = %d\n", cred.cmcred_euid);			printf("%d groups:", cred.cmcred_ngroups - 1);			for (i = 1; i < cred.cmcred_ngroups; i++)				printf(" %d", cred.cmcred_groups[i]);			printf("\n");		}		Writen(sockfd, buf, n);	}	if (n < 0 && errno == EINTR)		goto again;	else if (n < 0)		err_sys("str_echo: read error");}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?