C语言之将socket设置为非阻塞方式

用以下方法将socket设置为非阻塞方式 int flags = fcntl(socket, F_GETFL, 0); fcntl(socket, F_SETFL, flags | O_NONBLOCK); 将非阻塞的设置回阻塞可以用 int flags = fcntl(socket, F_GETFL, 0); fcntl(socket, F_SETFL, flags ~O_NONBLOCK);

» 阅读全文

Tags: c语言

C语言之IP处理函数

inet_aton()将一个.点隔的字符串IP地址转换为一个32位的网络序列IP地址。 inet_ntoa() 将32位的网络序列IP地址转换成.点隔的字符串格式。 ntohl()将网络字节顺]序转换为一个无符号长整形数主机字节顺序。 htonl()将一个无符号长整形数数值转换成网络字节顺序。 ntohs()将网络字节顺序转换为一个无符号短整形数主机字节顺序。 htons()将一个无符号短整型数值转换为网络字节序。

» 阅读全文

Tags: c语言

C语言之进程对资源使用的限制

core文件的最大字节数 #include sys/resource.h#include stdlib.h#include stdio.hint main(int argc, char *argv[]){ //在Linux系统中,Resouce limit指在一个进程的执行过程中,它所能得到的资源的限制,比如进程的corefile的最大值,虚拟内存的最大值等。 struct rlimit rlim_new; struct rlimit rlim; //getrlimit查询...

» 阅读全文

Tags: c语言

C语言之忽略SIGPIPE信号

#include stdlib.h#include sys/signal.hvoid SetupSignal() { struct sigaction sa; //在linux下写socket的程序的时候,如果尝试send到一个disconnected socket上,就会让底层抛出一个SIGPIPE信号。 //这个信号的缺省处理方法是退出进程 //重载这个信号的处理方法,如果接收到一个SIGPIPE信号,忽略该信号 sa.sa_handler = SIG_IGN; sa....

» 阅读全文

Tags: c语言

linux信号和信号含义

我们运行如下命令,可看到Linux支持的 信号 列表: $ kill -l1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR213) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD18) SIGCONT 19) SIGSTOP 20...

» 阅读全文

Tags: 信号 , linux

C语言之创建后台守护进程

实现一个后台进程需要完成一系列的工作,包括:关闭所有的文件描述字;改变当前工作目录;重设文件存取屏蔽码(umask) ;在后台执行;脱离进程组;忽略终端I/O信号;脱离控制终端。 #include stdio.h#include fcntl.h#include unistd.h#include stdlib.hint daemonize(void){ int fd; switch(fork()) { case -1: return (-1); case 0: break; ...

» 阅读全文

Tags: c语言

回顶部