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

应该如何去学习?

推荐书跟视频:

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

 

推荐学习步骤

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

linux 环境编程学习笔记 第一天 linux 内存管理

2015-05-07

linux 环境编程 一、linux 内存管理 1. 变量空间 linux 每运行一个程序都会在/proc内生成一个跟自己pid一样的文件夹,你面放着程序有关的信息 ldd ./1 可以看到 linux-vdso.so.1 (0x00007fff47eac000) libc.so.6 => /lib64/libc.so.6 (0x00007f37c4414000) /lib64/ld- ...

linux

linux 环境编程学习笔记 第25天 信号量(进程同步)

2015-05-07

一、信号量(进程同步) 模型 (1)创建或者得到信号量 semget int semget(key_t key, int nsems, //信号量数组的个数 int semflg); ////信号量的创建标记 创建:IPC_CREAT IPC_EXCL(防止重复创建),打开:就是0 (2)初始化信号量中指定下标的值 semctl int semctl(int semid, int semnu ...

linux

linux 环境编程学习笔记 第24天 基于socket文件的IPC

2015-05-07

一、基于socket文件的IPC 两种模型: 对等模型 C/S模型 1. 对等模型 绑定 (1) 建立socker内核对象 socket函数 int socket(int domain, 地址族类型 AF_UNIX AF_INET int type, //指定数据存放的数据格式 流SOCK_STREAM(数据之间没有边界) / 报文SOCK_DGRAM(数据之间有边界) int protoc ...

linux

linux 环境编程学习笔记 第22、23天 基于内存的通信

2015-05-07

一、基于内存的通信 一组内核共享工具 ipcs 可以看到三段东西 Shared Memory Segments 共享内存 Semaphore Arrays 信号量数组,共享内存数组 Message Queues 共享消息队列 ipcrm 1.普通的父子进程之间的匿名内存共享映射 2.内核共享内存(无序) 编程模型: (1) 创建共享内存,得到一个ID shmget函数 int shmget( ...

linux

linux 环境编程学习笔记 第21天 基于普通文件IPC,管道文件,匿名管道

2015-05-07

一、基于普通文件IPC IPC(Inter-Process Communication,进程间通信) 例子: main1.c 向tmp写入数据 #include #include #include <sys/mman.h> int main(int argc, const char *argv[]) { int fd=open("tmp",O_RDWR|O_CREAT|O_TRU ...

linux

linux 环境编程学习笔记 第20天 sigqueue/sigaction

2015-05-07

一、sigqueue/sigaction 1. 信号中断函数是否被其他信号中断? 信号函数调用中只屏蔽本身信号,不屏蔽其他信号 例子: #include #include void handle(int s) { printf("start!\n"); sleep(10); printf("end\n"); } int main(int argc, const char *argv[]) { ...

linux

linux 环境编程学习笔记 第18、19天 信号(2)

2015-05-07

接着上上次 一、信号 3.信号的应用(实现多任务) 使用定时器实现多任务 例子:同时显示随机数与时间 #include #include #include #include #include <sys/time.h> #include WINDOW *wtime,*wnumb; void showtime(int s) { time_t t; struct tm *tt; tim ...

linux

linux 环境编程学习笔记 第16.17天 进程的基本控制,信号

2015-05-07

一、进程的基本控制(进程的同步) 1.进程的常见控制函数 pause sleep/usleep atexit on_exit int atexit(void (*function)(void)); //注册终止函数(即main执行结束后调用的函数) int on_exit(void (*function)(int , void *), void *arg); //跟atexit差不多,只不过 ...