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的使用
linux 环境编程 一、linux 内存管理 1. 变量空间 linux 每运行一个程序都会在/proc内生成一个跟自己pid一样的文件夹,你面放着程序有关的信息 ldd ./1 可以看到 linux-vdso.so.1 (0x00007fff47eac000) libc.so.6 => /lib64/libc.so.6 (0x00007f37c4414000) /lib64/ld- ...
一、信号量(进程同步) 模型 (1)创建或者得到信号量 semget int semget(key_t key, int nsems, //信号量数组的个数 int semflg); ////信号量的创建标记 创建:IPC_CREAT IPC_EXCL(防止重复创建),打开:就是0 (2)初始化信号量中指定下标的值 semctl int semctl(int semid, int semnu ...
一、基于socket文件的IPC 两种模型: 对等模型 C/S模型 1. 对等模型 绑定 (1) 建立socker内核对象 socket函数 int socket(int domain, 地址族类型 AF_UNIX AF_INET int type, //指定数据存放的数据格式 流SOCK_STREAM(数据之间没有边界) / 报文SOCK_DGRAM(数据之间有边界) int protoc ...
一、基于内存的通信 一组内核共享工具 ipcs 可以看到三段东西 Shared Memory Segments 共享内存 Semaphore Arrays 信号量数组,共享内存数组 Message Queues 共享消息队列 ipcrm 1.普通的父子进程之间的匿名内存共享映射 2.内核共享内存(无序) 编程模型: (1) 创建共享内存,得到一个ID shmget函数 int shmget( ...
一、基于普通文件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 ...
一、sigqueue/sigaction 1. 信号中断函数是否被其他信号中断? 信号函数调用中只屏蔽本身信号,不屏蔽其他信号 例子: #include #include void handle(int s) { printf("start!\n"); sleep(10); printf("end\n"); } int main(int argc, const char *argv[]) { ...
接着上上次 一、信号 3.信号的应用(实现多任务) 使用定时器实现多任务 例子:同时显示随机数与时间 #include #include #include #include #include <sys/time.h> #include WINDOW *wtime,*wnumb; void showtime(int s) { time_t t; struct tm *tt; tim ...
一、进程的基本控制(进程的同步) 1.进程的常见控制函数 pause sleep/usleep atexit on_exit int atexit(void (*function)(void)); //注册终止函数(即main执行结束后调用的函数) int on_exit(void (*function)(int , void *), void *arg); //跟atexit差不多,只不过 ...
最新评论