注意:这里讲的是linux环境编程,而非linux的使用

应该如何去学习?

推荐书跟视频:

  1. 《unix环境高级编程》
  2. 视频: http://pan.baidu.com/s/1c1FOrlA  (这个视频讲的真的非常不错,强烈推荐,他大体上是按《unix环境高级编程》来讲的)

 

推荐学习步骤

  1. 首先要熟悉linux环境操作,熟悉命令行操作。
  2. 然后要学会使用vim或者emacs。
  3. 看前面推荐视频,一定要仔细的看不要跳过,可以结合《unix环境高级编程》跟下面的文章一起学习。
linux

linux 环境编程学习笔记 第15天 进程

2015-05-07

接着昨天 一、进程 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, ...); //第一个参数:替换的进程,第二个参数... ...

linux

linux 环境编程学习笔记 第13,14天 IO与文件目录管理,进程

2015-05-07

一、IO与文件目录管理 1.pread与lseek+read的区别 pread读取后不会改变读写位置 2.mmap映射 /proc/${pid}/mem 无法映射,并且 mmap函数最后一个参数 文件中的映射开始位置 必须是pagesize的证书倍,否者出错 3.IO的实际用户(real user)与有效用户(effective user) 默认情况:有效用户与实际用户一致,但设置了设置位, ...

linux

linux 环境编程学习笔记 第12天 curses(2)

2015-05-07

curses 接着前天 6.字符属性与颜色 判定终端是否支持颜色 bool has_colors();//都支持颜色,建议不判定 初始化颜色: int start_color(); 定义颜色对 int init_pair(short pair,short fore,short back); init_pair 一定要放在 start_color()后面 使用颜色对 COLOR_PAIR(sh ...

linux

linux 环境编程学习笔记 第11天 curses

2015-05-07

一、curses 1.简介: CUI字符界面,GUI:图形界面 curses就是cui的库 老版本libcurses.so,新版本libncurses.so printf / scanf 等标准IO 大部分是 重定向到终端 /dev/tty /dev/pts/1,curses就是终端输出。 编译时要 指定curses的库 -lcurses 或者 -lncurses 2.编程模型 初始化终端i ...

linux

linux 环境编程学习笔记 第九、十天 IO与文件映射,IO锁

2015-05-07

一、IO与文件映射 1.IO的共享与效率 read与write其中数据缓冲的大小 读取数据的缓冲:getpagesize。 2.定位与定位读取(随机读取) read与write在操作时,自动移动读取位置 (1)用lseek 可以 改变读取位置 lseek的函数说明: off_t lseek( int fd,//定位文件描述符号 off_t off,//定位位置 int whence//定位参 ...

linux

linux 环境编程学习笔记 第七、八天 IO基础

2015-05-07

一、IO基础 1.认识内核对象 系统不允许程序直接访问设备和内存,但可以通过内核系统函数去访问,系统对每个内核对象对象分配ID号。 程序要访问内核对象,只能通过ID号来访问。(申请得到一个ID ,在内核系统函数中使用ID得到对应内核对象数据)。 2.怎么访问文件 使用函数传递一个文件,系统打开文件,返回给程序ID号,程序通过ID号来访问文件,通过ID号来告诉系统释放文件。 ( ID:文件描述 ...

linux

linux 环境编程学习笔记 第六天 make与makefile,环境变量

2015-05-07

一、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 ...

linux

linux 环境编程学习笔记 第四、五天 映射虚拟内存,编译工具,静态库,动态库

2015-05-07

一、映射虚拟内存 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,//文件描述符号 ...