linux c
ls1122
这个作者很懒,什么都没留下…
展开
-
linux 网络编程 select函数用法
<br /> Select 在Socket 编程中还是比较重要的,可是对于初学Socket 的人来说都不太爱用Select 写程序,他们只是习惯写诸如 connect 、accept 、recv 或recvfrom 这样的阻塞程序(所谓阻塞方式block ,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。<br /><br />可是使用Select就可以完成非阻塞(所谓非阻塞方式non- block,就转载 2011-03-28 15:26:00 · 997 阅读 · 0 评论 -
linux 网络编程 epoll
在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。 相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明:#define __FD_SETSIZE 1024 表示select最多同时监听1024个fd,当然,可以通过修改头文件再重编译转载 2011-03-28 15:10:00 · 720 阅读 · 0 评论 -
linux C程序中获取shell脚本输出(如获取system命令输出)
<br />1. 前言<br /><br />Unix 界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作。比如实现一个 ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通常在程序中通过 system函数来调用shell命令。但是,system函数仅返回命令是否执行成功,而我们可能需要获得shell命令在控制台上输出的结果。例如, 执行外部命令ping后,如果执行转载 2011-04-11 16:14:00 · 1625 阅读 · 0 评论