
读书笔记
tietao
一切,都会云淡风轻的过去。
只为,心中不变的追求。
展开
-
Linux下select()的疑惑。
在一次使用select()的过程中,发现select的value of return及循环调用select()其中timeout的值似乎有些超出预期,于是查了一下,发现有些地方真的没有注意到。Linux man manual: /* According to POSIX.1-2001 */ #include /* According to原创 2012-08-31 12:55:33 · 1668 阅读 · 0 评论 -
程序中各段内存分配
进程内存布局(x86架构)--------------------------------------------------------------------------0x08048000 code .text,代码,只读 data .data,包含已经初始化的数据,只读 b原创 2012-05-11 11:54:39 · 1261 阅读 · 0 评论 -
指针理解(续)
使用的测试程序:#include #include int test_1(int * point){ printf("point : %08x\n", point); point = malloc(512); printf("point : %08x\n", point); return 0;}int test_2(int原创 2012-05-08 11:53:32 · 793 阅读 · 0 评论 -
深入Linux内核架构之进程篇一
好久没有翻书了,还接着上次的进程来吧!Linux内核中涉及进程和程序的最重要的数据结构是定义在include/sched.h中的task_struct里边包含了很多将进程与内核子系统联系起来的成员,其中很多是指向其他数据结构的指针。而Linux提供的资源限制机制,就利用了task_struct中的数据类型为struct rlimit(定义在resource.h中)的rlim数组。各个子系统原创 2012-07-02 22:33:01 · 1367 阅读 · 0 评论 -
串口初始化配置(备忘)
在基于AT91的嵌入式linux中接收串口数据时,发现对于接收的数据经常出现接收不完整的现象。一帧的数据可能会被当做两帧接收,导致对于一帧数据接收出现问题。虽然这种情况在一般情况下,并不是经常出现,但是只要数据量稍微大一些,情况就会出现。于是仔细看了程序中关于串口配置这一块的程序,int set_opt(int fd,int nSpeed, int nBits, char nEvent原创 2012-04-17 15:55:43 · 4104 阅读 · 0 评论 -
关于mmap内存映射的修改同步
以前使用过mmap函数,但是没有分析过,只是使用而已。在看到《APUE》中第十四章的mmap内存映射才发现,当时自己是侥幸使用而已,没有遇到什么问题。主要是没有考虑映射后的内存空间修改后,被映射的文件什么时候修改。在看了这一部分后,明白了很多。以mmap(NULL, LEN, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);第一个参数N原创 2012-03-28 22:06:21 · 8578 阅读 · 0 评论 -
socket的recv和send带来的疑惑
昨天在测试socket的传输时,发现有时候recv会会返回接收字节的长度为0,开始没有在意,但是过了一会系统重启了。这样一来带来的麻烦就大了。因为发现每次系统重启时,都在send函数附近,为了验证在send时系统重启,于是在send函数前后各加了一个打印输出,发现每次都是在第一个打印有输出,第二个没有。于是猜测是send时,阻塞导致给看门狗喂狗的线程没有切换执行,造成了系统复位重启。原创 2012-10-25 16:03:42 · 7595 阅读 · 2 评论