第44讲
来源:互联网 发布:软件如何防止破解 编辑:程序博客网 时间:2024/05/22 11:42
今日结果:(消息队列, 共享内存)
1 int msgget(key_t key, int msgflg); //创建消息队列, 自己设置的键值, 权限
ipcs // 查询消息队列; ipcrm -q 标识码 // shell 删除消息队列
一台主机上最多只能添加16个消息队列
int msgsnd(int msqid, const void * msg_ptr, size_t msg_sz, int msgflg); // 发送消息函数
int msgrcv( int msqid , void *msg_ptr, size_t msg_sz, long int msgtype, int msgflg); // 接收消息函数
消息大小(默认单位字节) 消息类型>=0 处理方式(0 等待,IPC_NOWAIT )
一个数据块最多只能放 8k 的数据
struct mymsg{
long message_type; // 消息类型>=1(不能等于0)
char msgdata[100];
};
int msgctl(int msqid, int cmd, struct msqid_ds *buf); // 消息队列处理函数
2 共享内存 : 几个进程共享一块内存(地址映射)
shmat(...); / 给当前进程建立内存映射关系
shmdt(...); // 删除当前进程的内存映射关系
int shmget( key_t key, size_t size, int shmflg); // 创建共享内存的函数
在内核文件下:cat shm* //查询多个文件内容的和
ipcrm -m 标识码 // 删除共享内存
memcpy( addr, buf ,strlen(buf)); // 往共享内存中些数据的函数, 也可已进行读取数据
int shmctl(...); // 共享内存处理函数
在结构体 struct shmid_ds 中, shm_cpid // 创建者的PID, shm_segsz // 共享内存的大小
memcpy( (char*) addr + sizeof(s) * i , &s , sizeof(s));// 必须进行类型强转地址才能加减(表示地址偏移), 传入结构体对象, 结构体大小; strlen () 不能计算结构体大小
明日计划: 完成老师分派的共享内存,消息队列,信号量,的一个综合应用题,然后自己去消息linux内核的相关知识,预习tcp/ip, 套接字的相关知识。
感想:自己现在的忘性还那么的好,学过的东西,也遗忘的很快,看来到最后还要再次进行好好的复习。合理安排时间,找合适的方法做自己想做的事。说这么多,剩下的就是做。
1 int msgget(key_t key, int msgflg); //创建消息队列, 自己设置的键值, 权限
ipcs // 查询消息队列; ipcrm -q 标识码 // shell 删除消息队列
一台主机上最多只能添加16个消息队列
int msgsnd(int msqid, const void * msg_ptr, size_t msg_sz, int msgflg); // 发送消息函数
int msgrcv( int msqid , void *msg_ptr, size_t msg_sz, long int msgtype, int msgflg); // 接收消息函数
消息大小(默认单位字节) 消息类型>=0 处理方式(0 等待,IPC_NOWAIT )
一个数据块最多只能放 8k 的数据
struct mymsg{
long message_type; // 消息类型>=1(不能等于0)
char msgdata[100];
};
int msgctl(int msqid, int cmd, struct msqid_ds *buf); // 消息队列处理函数
2 共享内存 : 几个进程共享一块内存(地址映射)
shmat(...); / 给当前进程建立内存映射关系
shmdt(...); // 删除当前进程的内存映射关系
int shmget( key_t key, size_t size, int shmflg); // 创建共享内存的函数
在内核文件下:cat shm* //查询多个文件内容的和
ipcrm -m 标识码 // 删除共享内存
memcpy( addr, buf ,strlen(buf)); // 往共享内存中些数据的函数, 也可已进行读取数据
int shmctl(...); // 共享内存处理函数
在结构体 struct shmid_ds 中, shm_cpid // 创建者的PID, shm_segsz // 共享内存的大小
memcpy( (char*) addr + sizeof(s) * i , &s , sizeof(s));// 必须进行类型强转地址才能加减(表示地址偏移), 传入结构体对象, 结构体大小; strlen () 不能计算结构体大小
明日计划: 完成老师分派的共享内存,消息队列,信号量,的一个综合应用题,然后自己去消息linux内核的相关知识,预习tcp/ip, 套接字的相关知识。
感想:自己现在的忘性还那么的好,学过的东西,也遗忘的很快,看来到最后还要再次进行好好的复习。合理安排时间,找合适的方法做自己想做的事。说这么多,剩下的就是做。
0 0
- 第44讲
- arcims 第2讲
- 第8讲 总结
- Java第2讲
- 第4讲 常用命令
- 数据结构第1讲
- 第22讲
- 第23讲
- 第24讲
- 第25讲
- 第26讲
- 第27讲
- 第28讲
- 第29讲
- 第30讲
- 第32讲
- 第33讲
- 第34讲
- PowerDesigner CDM建模
- HTK-3.4.1在ubuntu 14.04下的安装及Demo测试
- 第43讲
- 使用PowerDesigner创建CDM图
- Ubuntu下用Git往GitHub上提交项目
- 第44讲
- VC中读数据库时间并判断
- iOS Delegate 的使用
- cocos2d-x开发第一步–新建项目
- 第45讲
- EasyUI基础入门之Droppable(可投掷)
- 解析mysql的存储过程
- Retrieving the COM class factory for component with CLSID {00024500-0000-000 .
- 第46讲