Linux程序设计
LevinYan
这个作者很懒,什么都没留下…
展开
-
Linux socket accept尽信书不如无书
关于Linux socket 里面的 int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen)函数,很多书籍都把第三个参数搞错,以为第三个参数用来用来返回addr的类型,所以传个指针进去,却是表面上很像。一般情况下addrlen所指向的地址要是没有初始化(不是addrlen没有初始化,就像socklen_t a;sock原创 2012-03-03 09:24:50 · 4684 阅读 · 0 评论 -
Linux进程的实际用户ID和有效用户ID
本人对Unix下的进程的实际用户ID和有效用户ID一直都比较迷惑,没有完全搞清楚。最近温习APUE(《高级UNIX环境编程》),终于对这两个概念有了一个清晰的认识,看来经典著作绝对需要温习多遍,才能领略其中的奥秘。 在Unix进程中涉及多个用户ID和用户组ID,包括如下:1、实际用户ID和实际用户组ID:标识我是谁(据说这是一个变态的哲学问题,难死一片哲学家)。也就是登录用转载 2013-03-24 15:14:12 · 587 阅读 · 0 评论 -
关于子进程继承父进程信号特性
子进程会继承父进程的屏蔽信号和信号处理设置。下面总结一个表,我自己也学习下信号处理设置(Signal Disposition)屏蔽信号(Signal Mask)待处理信号(Pending Signal) fork execue pthread_createSignal Disposition转载 2013-04-01 14:42:49 · 2030 阅读 · 0 评论 -
ls -l 字段意思
ls -l(这个参数是字母L的小写,不是数字1) 这个命令可以使用长格式显示文件内容,如果需要察看更详细的文件资料,就要用到ls -l这个指令。例如我在某个目录下键入ls -l可能会显示如下信息(最上面两行是我自己加的): 位置1 2 3 4 5 6 7 顺序如下:读写权限: R 是读 W是写 X是可执行文件个数文件或目录的拥有者文件或目录所属组文件大小创建日期转载 2013-03-10 12:49:20 · 1716 阅读 · 0 评论 -
利用Qt creator编写linux驱动
利用Qt creator编写linux驱动 最近在潜心研究linux驱动开发,个人在这几天驱动开发中的遇到的几个难点:开发工具不够智能 驱动代码庞大不知如何入手 硬件方面主要是电路方面知识欠缺 从这几个方面入手来解决开发linux驱动的难题。 在搜索引擎上我发现很多高手常用驱动的开发工具还是vi/vim,emacs。但是对于我用惯转载 2012-11-14 13:55:15 · 2985 阅读 · 0 评论 -
用 Qt Creator 开发非 Qt 的 C/C++ 程序
【珠海】 11月25日(周日下午)OSC 源创会我要报名»在Windows还是习惯用VS2005但是现在到了Linux下,开发起来C/C++程序就没有那么得心应手的IDE了。虽然很多人推荐E开头那个主要作为Java开发的IDE,不过安上插件后感觉不大好,一个是那个智能完成功能反应有点迟钝,对标准库的支持 不大好,另一个是编译起来还是麻烦,不能自动根据工程生成合适的makefile(转载 2012-11-14 13:52:58 · 1480 阅读 · 0 评论 -
Linux socket之connect不要想当然
首先问问自己客户端调用connect是在什么时候返回,肯定是在服务器accept后返回,因为TCP/IP协议是面向连接。自己得出来答案,然后再去问问身边的人,基本上都是这个答案。但是很可惜结果不是这样子,因为TCP/IP协议是经过三次握手的,要是服务器在listen,首先是客户端向通过connect向服务器发送request,然后服务器发送ACK,当客服端接受到ACK,connect就返回,这时候原创 2012-03-21 11:14:37 · 4543 阅读 · 0 评论 -
Linux socket断开连接的怪异
文档上面说recv函数通常是阻塞,除非文件描述符设置为非阻塞,但是今天我遇到很奇怪的现象就是recv函数返回值为0。仔细一看,原来是对方的socket已经关闭,利用这个特性可以很简单地知道对方是否关闭了socket。原创 2012-03-20 18:02:44 · 1584 阅读 · 0 评论 -
mount命令的使用
做DM9000网卡时时,发现挂载nfs以后,拷贝大文件经常出错,经过查找发现linux2.4.18内核的网络系统无法读取大于1024字节包的情况,因此造成大量丢包。解决方法为在nfs挂载时设置包的最大大小,命令如下:mount -t nfs -o nolock,rsize=1024,wsize=1024 192.168.0.10:/home /mnt/yaffs/home/转载 2012-03-27 17:09:39 · 2244 阅读 · 0 评论 -
pthread_cleanup_push/pop成对出现的意义
首先简单介绍一下这两条API线程可以安排它退出时需要调用的函数,这样的函数称为线程清理处理程序,线程可以建立多个清理处理程序。处理程序记录在栈中,也就是说它们的执行顺序与它们注册时的顺序相反。 pthread_cleanup_push来注册清理函数rtn,这个函数有一个参数arg。在以下三种情形之一发生时,注册的清理函数被执行: 1)调用pthread_exit。原创 2014-03-22 21:41:48 · 2880 阅读 · 0 评论