注意:这里讲的是linux环境编程,而非linux的使用
应该如何去学习?
推荐书跟视频:
- 《unix环境高级编程》
- 视频: http://pan.baidu.com/s/1c1FOrlA (这个视频讲的真的非常不错,强烈推荐,他大体上是按《unix环境高级编程》来讲的)
推荐学习步骤
- 首先要熟悉linux环境操作,熟悉命令行操作。
- 然后要学会使用vim或者emacs。
- 看前面推荐视频,一定要仔细的看不要跳过,可以结合《unix环境高级编程》跟下面的文章一起学习。
接着昨天 一、进程 2.创建进程 (1) int system(const char *command); (2) FILE *popen(const char *command, const char *type); (3) exec系列函数 int execl( const char *path, const char *arg, ...); //第一个参数:替换的进程,第二个参数...
...
2015-05-07
0
3036
一、IO与文件目录管理 1.pread与lseek+read的区别 pread读取后不会改变读写位置 2.mmap映射 /proc/${pid}/mem 无法映射,并且 mmap函数最后一个参数 文件中的映射开始位置 必须是pagesize的证书倍,否者出错 3.IO的实际用户(real user)与有效用户(effective user) 默认情况:有效用户与实际用户一致,但设置了设置位,
...
2015-05-07
0
3212
curses 接着前天 6.字符属性与颜色 判定终端是否支持颜色 bool has_colors();//都支持颜色,建议不判定 初始化颜色: int start_color(); 定义颜色对 int init_pair(short pair,short fore,short back); init_pair 一定要放在 start_color()后面 使用颜色对 COLOR_PAIR(sh
...
2015-05-07
0
2686
一、curses 1.简介: CUI字符界面,GUI:图形界面 curses就是cui的库 老版本libcurses.so,新版本libncurses.so printf / scanf 等标准IO 大部分是 重定向到终端 /dev/tty /dev/pts/1,curses就是终端输出。 编译时要 指定curses的库 -lcurses 或者 -lncurses 2.编程模型 初始化终端i
...
2015-05-07
0
2962
一、IO与文件映射 1.IO的共享与效率 read与write其中数据缓冲的大小 读取数据的缓冲:getpagesize。 2.定位与定位读取(随机读取) read与write在操作时,自动移动读取位置 (1)用lseek 可以 改变读取位置 lseek的函数说明: off_t lseek( int fd,//定位文件描述符号 off_t off,//定位位置 int whence//定位参
...
2015-05-07
1
2731
一、IO基础 1.认识内核对象 系统不允许程序直接访问设备和内存,但可以通过内核系统函数去访问,系统对每个内核对象对象分配ID号。 程序要访问内核对象,只能通过ID号来访问。(申请得到一个ID ,在内核系统函数中使用ID得到对应内核对象数据)。 2.怎么访问文件 使用函数传递一个文件,系统打开文件,返回给程序ID号,程序通过ID号来访问文件,通过ID号来告诉系统释放文件。 ( ID:文件描述
...
2015-05-07
0
2796
一、make与makefile makefile列子 OBJ=add.o sub.o add.o:add.c gcc add.c -c -fpic sub.o:sub.c gcc sub.c -c -fpic libku2.so:$(OBJ) gcc -shared -olibku2.so $(OBJ) main:main.c libku2.so gcc main.c -ldl -omain
...
2015-05-07
0
2709
一、映射虚拟内存 mmap / unmap void *mmap( void *start,//指定映射的虚拟地址 0由系统指定开始位置) size_t length,//映射空间大小 pagesize()倍数 int prot,//映射权限 PROT_NONE 或 PROT_READ PROT_WRITE PROT_EXEC int flags,//映射方式 int fd,//文件描述符号
...
2015-05-07
0
2793
最新评论