linux API
文章平均质量分 56
避趋之
生命不息,学习不止
展开
-
va_list,va_start,va_end,va_copy,vprintf,vfprintf,vsprintf,vsnprintf
#include int printf(const char *format, ...); int fprintf(FILE *stream, const char *format, ...); int sprintf(char *str, const char *format, ...); int snprintf(char翻译 2012-09-05 14:26:49 · 1506 阅读 · 0 评论 -
信号(初稿)
废弃的接口:int sighold(int sig);int sigrelse(int sig);int sigignore(int sig);新接口:不能block SIGKILL or SIGSTOP。#include #include int kill(pid_t pid, int sig);pid大于0,发送给指定进程;pid为0,发送给当前进程所在原创 2013-08-20 11:31:13 · 786 阅读 · 0 评论 -
`uint32_t' undeclared here
#include原创 2013-10-14 15:26:41 · 2772 阅读 · 0 评论 -
ioctl
http://hi.baidu.com/original/item/bb37418602468acdee083d53用ioctl函数,命令用SIOCGIFADDR可获得本机的IP地址,命令SIOCSIFADDR可设置IP地址,命令SIOCGHWADDR可获得网卡的硬件地址,还有很多,如SIOCGFLAGS、SIOCSFLAGS等转载 2013-12-02 16:43:34 · 889 阅读 · 0 评论 -
getaddrinfo, getnameinfo(替代gethostbyname, gethostbyaddr), gethostname
http://beej.us/guide/bgnet/output/html/multipage/gethostbynameman.htmlgethostbyname, gethostbyaddr是不可重入函数;已经被getaddrinfo, getnameinfo替代。http://beej.us/guide/bgnet/output/html/multipage/g转载 2013-02-19 17:46:03 · 16577 阅读 · 0 评论 -
非线程安全的函数
http://blog.csdn.net/yaochunnian/article/details/7258446下表是 UNIX环境高级编程列出 POSIX.1规范中的非线程安全的函数:asctimeecvtgethostentgetutxlineputc_unlockedbasenameencryptgetl转载 2013-05-30 16:04:30 · 2400 阅读 · 0 评论 -
网络接口,rtnl_lock
字符设备一个字符( char ) 设备是一种可以当作一个字节流来存取的设备( 如同一个文件 ); 一个字符驱动负责实现这种行为. 这样的驱动常常至少实现 open, close, read, 和 write 系统调用. 文本控制台( /dev/console )和串口( /dev/ttyS0 及其友 )是字符设备的例子, 因为它们很好地展现了流的抽象. 字符设备通过文件系统结点来存取, 例如原创 2014-02-14 10:47:38 · 8000 阅读 · 0 评论 -
FreeBSD的netgraph
http://blog.csdn.net/dog250/article/details/7421578ngctl list Name: ngctl17626 Type: socket ID: 00000094 Num hooks: 0 Name: lksocket1 Ty转载 2014-07-24 18:06:01 · 2804 阅读 · 0 评论 -
pthread_cleanup_push、pthread_cleanup_pop必须成对使用,否则编译不过!
http://blog.csdn.net/openxmpp/article/details/8583194转载 2014-05-13 18:22:52 · 1283 阅读 · 0 评论 -
pthread_setspecific,pthread_getspecific
可以参考freediameter里面用法。set是传入转载 2014-07-11 10:06:28 · 653 阅读 · 0 评论 -
网络编程
#include #includePF_INETAF_INETPF_INET6PF_UNIXSOCK_STREAM ---------- 需要自己对报文进行分解,一次可能读出部分,或可能读出多个报文。SOCK_DGRAM ---------- 一次只读出一个报文SOCK_SEQPACKET ---------- 一次只读出一个报文INAD转载 2012-12-10 11:21:31 · 686 阅读 · 0 评论 -
freebsd kqueue
http://en.wikipedia.org/wiki/Kqueue转载 2014-07-30 11:58:28 · 497 阅读 · 0 评论 -
线程间互斥锁
pthread_mutex_t mtx = PTHREAD_MUTEX_INITIALIZER;#include int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr);Returns 0 on success, or a positive error number on err原创 2013-08-02 11:44:50 · 869 阅读 · 0 评论 -
AF_INET和AF_PACKET区别
man 7 ip man 7 packet Packet sockets are used to receive or send raw packets at the device driver (OSI Layer 2) level. They allow the user to implement protocol modules in user space on top转载 2013-12-16 13:15:36 · 17862 阅读 · 0 评论 -
strftime, localtime_r(替代localtime), gettimeofday(替代ftime)
一、 size_t strftime(char *s, size_t max, const char *format, const struct tm *tm); The strftime() function returns the number of characters placed in the原创 2013-01-29 11:13:03 · 7511 阅读 · 0 评论 -
qsort
功 能: 使用快速排序例程进行排序头文件:stdlib.h用 法: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));参数: 1 待排序数组首地址2 数组中待排序元素数量3 各元素的占用空间大小4 指向函数的指针,用于确定排序的顺序转载 2015-04-13 14:30:38 · 484 阅读 · 0 评论 -
isxdigit等
#include int isalnum(int c); --------- 字母或数字int isalpha(int c);int isascii(int c); ----------- 0到127int isblank(int c); ---------- 空格或tabint iscntrl(int c); ------------ 控制字符int isdigit(原创 2013-08-26 13:59:35 · 786 阅读 · 0 评论 -
getprotobynumber,/etc/protocols
#include struct protoent *getprotoent(void);struct protoent *getprotobyname(const char *name);struct protoent *getprotobynumber(int proto);void setprotoent(int stayopen);void endprotoent(void);读取/et原创 2013-08-26 11:30:27 · 2038 阅读 · 0 评论 -
errno perror strerror strerror_r
http://man7.org/linux/man-pages/man3/errno.3.html 1、当系统调用或一些C库函数出错时,设置errno。 2、errno永远不会被系统调用或库函数设置为0. 调用成功时,errno行为未知,可能被修改。 3、一般情况下,系统调用或库函数出错时,返回-1或NULL。但有些情况下,返回-1就是正常值,如getp原创 2012-09-05 22:58:50 · 3280 阅读 · 0 评论 -
C UNIX标准
http://man7.org/linux/man-pages/man7/standards.7.html 各个组织都退出自己的标准:1、贝尔实验室V7 2、BSD推出的:4.2BSD -》 4.3BSD -》4.4BSD 3、AT&TSystem V -》System V release 2 -》SVr3 -》SVr4 4、ISOC89翻译 2012-09-05 23:26:12 · 1024 阅读 · 0 评论 -
strpbrk strspn strcspn
1、strpbrk#include char *strpbrk(const char *s, const char *accept);accept是一组字符,在s中查找此组字符中的任意一个,匹配即停止并返回指针指向此字符位置。如strpbrk(s, “+="); 表示s中匹配到+号或=号都停止。 2、strspn,strcspn#include si原创 2012-09-07 15:18:37 · 1164 阅读 · 0 评论 -
dup dup2
int dup(int newfd);返回当前可用描述符最小值int dup2(int fd1, int fd2);fd2参数为新描述符的数值。如果fd2已经打开,则先关闭fd2。如果fd1和fd2相等,则不关闭,直接返回fd2。原创 2012-12-08 23:45:51 · 435 阅读 · 0 评论 -
文件原子操作
1、open的O_CREATE和O_EXCL2、pread,pwrite 相当于原子执行lseek和read3、dup2相当于原子执行close和fcntl(F_DUPFD)原创 2012-12-19 11:38:20 · 480 阅读 · 0 评论 -
linux 文件I/O API
1. 文件描述符使用int,而不是unix中的fd_t.2. STDIN_FILENO,STDOUT_FILENO,STDERR_FILENO3.open int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode); 只有原创 2012-09-05 23:31:59 · 582 阅读 · 0 评论 -
sockaddr, sockaddr_in, sockaddr_in6, sockaddr_un
typedef __kernel_sa_family_t sa_family_t;struct sockaddr {sa_family_t sa_family; /* address family, AF_xxx*/char sa_data[14];/* 14 bytes of protocol address*/};---16个字节长度struct i原创 2013-02-19 14:59:01 · 16497 阅读 · 2 评论 -
readlink (可以用于读取本进程的程序名)
http://baike.baidu.com/view/3293446.htmreadlink()会将参数path的符号链接内容存储到参数buf所指的内存空间表头文件: #include 定义函数:ssize_t readlink(const char *path, char *buf, size_t bufsiz);readlink("/proc/se原创 2013-02-17 13:58:50 · 3351 阅读 · 0 评论 -
epoll
学习linkhttp://www.oschina.net/question/234345_40335select pselectpoll (只监听需要监听的socket,但需要挨个判断是否发生事件。)ppollepoll :(将需要监听的socket们都放入系统中,返回发生事件的socket个数,只需要处理这几个socket即可,所以效率更原创 2012-12-05 16:32:55 · 500 阅读 · 0 评论 -
librt, libposix4 - POSIX.1b Realtime Extensions library
如下这些函数依赖rt库,即通过-lrt编译链接动态库。 aio_cancel aio_error aio_fsync aio_read aio_return aio_suspend aio_waitn转载 2013-04-01 16:03:08 · 1278 阅读 · 0 评论 -
linux进程通信之pipe (pipe,pipe2)
http://man7.org/linux/man-pages/man2/pipe.2.html #include int pipe(int pipefd[2]); #define _GNU_SOURCE #include int pipe2(int pipefd[2], int flags); /翻译 2012-09-05 15:22:20 · 10606 阅读 · 0 评论 -
execve, execl, execlp, execle, exece, execvp
http://www.kernel.org/doc/man-pages/online/pages/man3/exec.3.html #include int execve(constchar*filename,char*constargv[],char*constenvp[]); 只有此函数是系统调用。其他都是C库。 1. filename是可执行文件,或者是原创 2012-09-06 15:27:23 · 1572 阅读 · 0 评论 -
getopt, optarg, optind, opterr, optopt
http://www.kernel.org/doc/man-pages/online/pages/man3/getopt.3.html #include int getopt(int argc, char * const argv[], const char *optstring); extern char *opta翻译 2012-09-06 13:39:43 · 6630 阅读 · 0 评论 -
inet_ntop,inet_pton(替代inet_aton等)
http://beej.us/guide/bgnet/output/html/multipage/inet_ntopman.htmlinet_ntop #include #include #include const char *inet_ntop(int af, const void *src,原创 2012-11-30 17:20:25 · 5095 阅读 · 0 评论 -
strtol
http://baike.baidu.com/view/1874375.htm最大36进制(0-9,a-z) #include #include #include #include int main(int argc, char *argv[])转载 2013-07-22 09:31:32 · 643 阅读 · 0 评论 -
ioctl ARP缓存表
http://blog.chinaunix.net/uid-488742-id-2113621.htmlARP缓存表arp_tbl由协议栈在运行期间自动维护,包括邻居新建,更新,回收等。同时,TCP/IP协议栈的实现中也提供了三个命令,可以用来由用 户维护arp_tbl,这三个命令分别是SIOCDARP(删除arp_tbl中的一个邻居),SIOCSARP(设置arp_tbl中的一个邻居转载 2015-04-21 11:37:56 · 1063 阅读 · 0 评论