易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux 进程互斥量

网上找了下Linux进程间互斥的实现,两种方法,semaphore 和 文件锁。刚开始也尝试用semaphore来实现,但发现sem_wait和singal无法实现Windows下CirtSec,而采用了后者文件锁;
但对于读写锁来说实用文件锁实现,存在一定的不足,它分开了读写锁,而没有分开解读写锁,利用UnLock来统一解读写锁,对于这进程间读写锁的实现,还需要再进一步了解才可!
基于文件锁而实现的进程间互斥
/*
* File: MProcessCritSec.h
* Author: root
*
* Created on 2010年5月13日, 上午4:37
*/
#ifndef _MPROCESSCRITSEC_H
#define _MPROCESSCRITSEC_H
#include <fcntl.h>
#include <string>
using namespace std;
class MProcessCritSec
{
public:
MProcessCritSec(char *pFileName);
virtual ~MProcessCritSec();
public:
/*
* 锁
*/
bool Lock();
/*
* 解锁
*/
bool UnLock();
/*
* 非阻塞锁
*/
bool TryLock(int nWaitTime = 60);
/*
* 判断锁的状态
*/
bool IsLock();
private:
//
flock m_lock;
//
int m_nLockValue;
//
bool m_bLocked;
//
string m_strFilePath;
};
#endif /* _MPROCESSCRITSEC_H */
/*
* File: MProcessCritSec.cpp
* Author: root
*
* Created on 2010年5月13日, 上午4:37
*/
#include "MProcessCritSec.h"
#include <errno.h>
using namespace std;
MProcessCritSec::MProcessCritSec(char *pFileName)
:m_bLocked(false)
{
m_bLocked = false;
m_strFilePath.append("/tmp/");
m_strFilePath.append(pFileName);
m_nLockValue = open(m_strFilePath.c_str(), O_WRONLY|O_CREAT, 0777);
}
MProcessCritSec::~MProcessCritSec()
{
close(m_nLockValue);
remove(m_strFilePath.c_str());
}
/*
* 函数作用:锁
* 函数参数:
* 函数返回:
* bool
*/
bool MProcessCritSec::Lock()
{
m_lock.l_type = F_WRLCK;
m_lock.l_whence = SEEK_SET;
m_lock.l_start = 0;
m_lock.l_len = 0;
if ( fcntl(m_nLockValue, F_SETLKW, &m_lock) != 0 )
return false;
m_bLocked = true;

return true;
}
/*
* 函数作用


相关文档:

Linux中如何新建用户


对于一般用户来说,主目录(home directory)是硬盘上唯一可以原来写东西的地方。一般的路径名是/home/login_user_name。
主目录用于存储各种用户文件:设置文件,程序配置文件,用户文档,数据 netscape 的缓存,邮件等等。作为一个普通用户,你可以在主目录下建立新的目录安排你自己的目录结构。其他用户无法阅读你的 ......

linux最实用的命令

1、查看进程服务数,例如:ps -u ats3|grep Commer|wc -l
其中“-u”,后面跟用户,“|grep Commer|”是看ats3用户下的Commer服务数,“|wc -l”看行数;
2、按时间排序查看文件:ls -lrt;
3、vi中的命令:
:set nu 显示行数
按x键:删除光标处的一个字符
按dd键:删除光标所在的行
......

Linux文件系统中查找文件命令用法

在当前目录下搜索指定文件:
find . -name test.txt
在当前目录下模糊搜索文件:
find . -name '*.txt'
在当前目录下搜索特定属性的文件:
find . -amin -10 # 查找在系统中最后10分钟访问的文件
find . -atime -2 # 查找在系统中最后48小时访问的文件
find . -empty # 查找在系统中为空的文件或者文件夹
find . -g ......

Linux 静态库 共享库 动态库 读书笔记

静态函数库是在程序执行前就加入到目标程序中去了;而共享函数库则是在程序启动的时候加载到程序中,它可以被不同的程序共享;动态加载函数库则可以在程序运行的任何时候动态的加载。
静态函数库实际上就是简单的一个普通的目标文件的集合,一般来说习惯用“.a”作为文件的后缀。可以用ar这个程序来产生静态函数 ......

Why do We Choose Linux?

Linux, named after the inventor, Linus Torvalds, is a so different OS for everyone against Windows. To everyone who used to use Windows, Linux need us to do more for everything which we usually do by computer, such as playing a video.
Someone says, Linux is for the ones who are good at the computer ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号