Linux下使用C++互斥访问文件,加消息队列
Linux下使用C++互斥访问文件
前提:
1,我是一个客户端模块
2,不停接收上层消息,作出判断后,异步调用下层函数,进行文件读写,同时我还在接收上层消息
3,为了避免本次读写还未完成,新的消息又要求读写同一个文件,则需要加锁进行保护,新的消息被阻塞,同时被阻塞的消息需要保存下来,一旦文件空闲就进行处理。
要求:
1,使用C++标准库,STL容器,Linux系统函数
2,提供加锁访问部分的代码
3,提供消息队列部分的代码,包括保存消息和取出消息进行处理
4,请尽量多加注释,并注明所用的头文件
100分起送,回复满意另加,多谢了!
[解决办法]
呼。。
[解决办法]
接收消息模块在收到消息时候可直接写入一个临时文件(如 /tmp/your_program/01.msg)而处理消息模块直接从文件夹中读取消息文件进行处理,一次一个,不会冲突。
[解决办法]
//上层
接收消息
mutex lock
写入临时文件
mutex unlock
执行
//下层
mutex lock
读临时文件
mutex unlock
头文件
#include <pthread.h>
编译加- lpthread
锁
pthread_mutex_t g_mutQueue = PTHREAD_MUTEX_INITIALIZER;
[解决办法]