?? util.c
字號:
/* util.c -- miscelanneous common code * * This file is part of 'netcast' program, released under BSD License. * (c) 2001-2002 Stanis砤w Pa秌o <staszek@nutki.com>. All rights reserved. */#include <arpa/inet.h>#include <sys/types.h>#include <fcntl.h>#include "mdist.h"#include "util.h"int code;/* Create sockaddr_in from address. Now supports only IPs, may be easily extended (since all addresses are resolved here) */struct sockaddr_in make_addr(char *addr, unsigned short port) { struct sockaddr_in sin; sin.sin_family=AF_INET; if (!addr) sin.sin_addr.s_addr=htonl(INADDR_ANY); else { if (!inet_aton(addr,&sin.sin_addr)) crit("cant resolve address: %s",addr); } sin.sin_port=htons(port); return sin; }/* Better than using a macro */void set_nonblock(int s) { if (fcntl(s,F_SETFL,O_NONBLOCK)<0) crit("fcntl() failed, can't set O_NONBLOCK");}size_t read_all(int fd, void *buf, size_t count) { size_t t=0,r=0; while (count>0) { r=read(fd,buf+t,count); if (r<=0) return t?t:r; t+=r;count-=r; } return t;}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -