⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 _sock_ingetaddr.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
/* posix */#include <sys/types.h>#include <unistd.h>#include <stdlib.h>#include <stdio.h>#include <fcntl.h>#include <errno.h>#include <string.h>/* bsd extensions */#include <sys/uio.h>#include <sys/socket.h>#include <netinet/in.h>#include <sys/un.h>#include "priv.h"void_sock_ingetaddr(Rock *r, struct sockaddr_in *ip, int *alen, char *a){	int n, fd;	char *p;	char name[Ctlsize];	/* get remote address */	strcpy(name, r->ctl);	p = strrchr(name, '/');	strcpy(p+1, a);	fd = open(name, O_RDONLY);	if(fd >= 0){		n = read(fd, name, sizeof(name)-1);		if(n > 0){			name[n] = 0;			p = strchr(name, '!');			if(p){				*p++ = 0;				ip->sin_family = AF_INET;				ip->sin_port = atoi(p);				ip->sin_addr.s_addr = inet_addr(name);				if(alen)					*alen = sizeof(struct sockaddr_in);			}		}		close(fd);	}}

⌨️ 快捷键说明

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