摘要:
这两章的内容相对较少,所以合到一起写。第六章1. 获取pwd结构体指针的三个函数:#include <pwd.h>struct passwd *getpwuid(uid_t uid);struct passwd *getpwnam(const char *name);struct passwd *getpwent(void);2. 其他数据文件Description Data file Header Structure functionspasswords /etc/passwd <pwd.h> passwd getpwnam, getpwuidgroups /etc/ 阅读全文
摘要:
标准I/O库1.当打开一个流时,标准I / O函数f o p e n返回一个指向F I L E对象的指针。该对象通常是一个结构,它包含了I / O库为管理该流所需要的所有信息:用于实际 I / O的文件描述符,指向流缓存的指针,缓存的长度,当前在缓存中的字符数,出错标志等等。文件描述符S T D I N _ F I L E N O , S T D O U T _ F I L E N O和S T D E R R _ F I L E N O分别对应这三个标准I / O流通过预定义文件指针s t d i n , s t d o u t和s t d e r r。2.三种缓存类型:标准I / O提供了三 阅读全文
摘要:
1.首先,关于 stat, fstat, lstat#include <sys/stat.h>int stat(const char *restrict pathname, struct stat *restrict buf);int fstat(int filedes, struct stat *buf);int lstat(const char *restrict pathname, struct stat *restrict buf);注意两点,(1) 对于链接文件,stat返回的是指向的文件的属性, lstat返回的是链接文件本身的属性。(2) fstat 接收的参数与st 阅读全文
摘要:
第三章--文件IO1.creat函数创建文件时权限是O_WRONLY,OPEN函数无此限制。2.两张图:(进程打开多个文件时的结构关系)(两个无关进程打开同一个文件)当两个进程打开同一个文件时要注意使用锁等方式进行原子操作。另一个简单的解决方案: 读写时用pread和pwrite(lseek和read write组成的原子操作),创建时用open的O_CREAT 和 O_EXCL选项。dup2 (a, b);常用来实现重定向,效果是把b重定向为a,对b的操作实际是操作a。3.还是图,dup(1)过后进程与打开文件结构及inode节点的关系。dup函数可以保证返回的文件描述符是可用的重最小的,用 阅读全文
摘要:
读了这篇文章http://news.cnblogs.com/n/118977/文章比较长,说实话没有看完,不过看到前面提到代码库的概念,引发一点感慨。或许是吧,越来越感触到自己是多么急切的需要一个熟悉的代码库。有很多问题其实是重复的,或者相似的。编程领域里的经典思想和算法有限,的确很多时候是已有代码的堆叠。自己也有不少资料,可惜太乱了,不能像牛人那样做到非常熟悉,拿来就用。所以,从现在起,开始搜集整理去!! 阅读全文
摘要:
1. The two primary characteristics of object-oriented programming are inheritance and polymorphism. Inheritance allows us to group classes into families of related types, allowing for the shar... 阅读全文
摘要:
先发个c++代码 #include <iostream>using namespace stdint main (){ char *p = new char; *p = 'a'; for (int i = 0; i < 5; i++) { cout << a << endl; } return 0;}再插入个图片,这回找个美女吧.可以了吗?试试看.End 阅读全文
摘要:
本文主要参考LDD3 第四章及linux设备驱动开发详解(宋宝华)的第22章调试嵌入式内核的方法如下:一、 首先要在编译内核时打开许多调试选项,这样在驱动程序出错时就会打印出尽可能多的调试信息。二、 通过printk, oops, strace, /proc,等进行观察调试(最常用)三、 目标机插桩,如打上KGDB补丁,利用gdb, kgdb工具在主机端调试目标机。四、 利用仿真器,仿真器可以直接连接目标机的JTAG/BDM,这样主机的GDB就可以通过与仿真器的通信调试目标机。下面逐项简单介绍一下:1 内核选项(这部分直接从ELDD上面copy过来)Several options exist 阅读全文
摘要:
先前的学习涉猎比较广泛,高级编程,电子电路,上层编程,甚至做网页,都接触过了。尽管学的都不深,但是都知道一点基本的知识。先前看到一句话,叫做know something about everything, know everything about something。尽管自己先前并没用那么明确的说明,但是我确信自己一直在向往着成为一名linux驱动开发工程师。我知道每一种技术都有它存在的必要性,深入研究下去都回花费大量的时间和精力,所以必须选定一个方向,舍弃其他的方向。如果我选择一直前进,就必然错过沿途其他很多可能的选择。所以,必须做好牺牲的准备。坚持,技术这条路总是坚持的人笑到最后,既然我 阅读全文
摘要:
一、中断1 概述: Linux 的中断处理分为顶半部和底半部,顶半部完成尽可能少得的比较紧急的功能,往往只是简单的完成“登记中断”的工作, 就是就是将底半部处理程序挂到该设备的底半部处理队列中去。但是,也不能僵化的认为linux设备驱动中的中断处理一定分 为两个半部,如果中断要处理的工作本身就很少,则完全可以在顶半部全部完成。查看/proc/interrupts文件可以获得系统 中断的统计信息。2 中断编程: 1 申请和释放中断 (1) 申请irq int request_irq (unsigned int irq, irq_handler_t handler, un... 阅读全文