linux

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

一、基于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天 基于内存的通信

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

linux

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

一、基于普通文件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

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

接着上上次 一、信号 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天 进程的基本控制,信号

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

linux

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

接着昨天 一、进程 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与文件目录管理,进程

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