转载自:
http://www.cnblogs.com/OnlyXP/archive/2007/08/10/851222.html
epoll精髓
在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。
相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用… 更多... “linux效率优于select的epoll模型”
IT夜班车
转载自:
http://www.cnblogs.com/OnlyXP/archive/2007/08/10/851222.html
在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。
相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用… 更多... “linux效率优于select的epoll模型”
好兴奋啊,今天终于可以用man来查看函数了,这个问题已经困扰了我好久好久了,花了不少功夫,为了解决这个问题,还特意加了linux 开发QQ群,结果也没有解决这个问题。
那么怎么来安装呢?其实非常简单(其实好多问题,就是有那么一心半点的技巧或者信息不知道,知道了,做起来非常简单,也许几分钟就搞定,但是可能之前花了几百个小时)。
先下载man page,这里提供一个我使用的连接:
以下内容摘自:
http://hi.baidu.com/051156/blog/item/9813f7460452c6016a63e554.html
Unix中,每个进程都包含三个ID:real user ID,effective user ID,saved set user ID。
real user ID表示的是实际上进程的执行者是谁。
effective user ID主要用于校验该进程在执行时所获得的文件访问权限,也就… 更多... “real user ID,effective user ID,saved set user ID”
因为之前一直在windows下面用vc+vc 助手开发,所以早就习惯了那里的语法加亮和自动补齐等,所以在vim开发有点不适应,因此想把开发环境稍作改动,让它跟vc接近些。
在我们讨论下面的内容之前请确保你的linux上已经安装好vim和相应的插件。如果没有安装请参看我的另外一遍文章:
安装linux开发环境(vim + ctags + taglist + cscope + cppcomplete + global )
让后你发… 更多... “配置vim文本颜色”
为了让我们的程序能被GDB调试,在编译的时候需要加上编译选项 -g 例如:
gcc -c -g main.c -o main.o
1. 启动GDB:
gdb main
( 该文中所有的命令均在linux的终端上实验通过。)
执行上面的命令要求当前的目录文main程序所在的目录,也可以不在main所在的目录,那样就需要指定main的路径,用绝对路径和相对路径都可以。
2. 列出代码:
l (这是小写的L)
或者是list
调试代码时,… 更多... “GDB调试器的基本用法”
从学校毕业以后,开发东西几乎全部是c++,今天在linux用c编程,发现关于结构体在定义和使用的上的一点区别。至于结构体在c++有类的特性,这里不做赘述,感兴趣的朋友可以自己查看c++ primer的相关章节。
以前在c++中定义和使用结构体如下:
// definition
typedef struct Student_t
{
int num;
char name[128];
}Student, *PStudent;
本人是从windows转到linux的。因此学习linux编程时候,每学习一种思想或者概念都要跟windows对应的东西相比较,这样便于理解和记忆,也不至于搞混了。
下面将陆续列出本人涉及到一些,随着学习的深入和工作经验的加深,下面的内容将逐渐扩充。
1. 线程的ID.
windows: 是全系统唯一的, 可参看msdn上面关于OpenThread的相关说明。
linux: 不是全系统唯一的,是进程唯一的… 更多... “windows vs linux 编程之区别汇编”
请参考:
http://blog.360converter.com/archives/19
通过makefile可以一次性将所有相关的源文件编译生成目标文件.
makefile是通过make命令来执行的. 在windows下面是通过nmake执行的. 这里只讨论前者.
先写一个简单的makefile
#This is my first my makefile
CC=gcc
OBJ=codec.o format.o main.o