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

linux进程通信 信号量使用

标题:Linux进程通信-使用信号量
一、相关知识
 信号量:一个整数;
  大于或等于0时代表可供并发进程使用的资源实体数;
  小于0时代表正在等待使用临界区的进程数;
  用于互斥的信号量初始值应大于0;
  只能通过P、V原语操作而改变;
 信号量元素组成:
  1、表示信号量元素的值;
  2、最后操作信号量元素的进程ID
  3、等待信号量元素值+1的进程数;
  4、等待信号量元素值为0的进程数;
 
二、主要函数
 
 1.1 创建信号量
 int semget(
  key_t key,  //标识信号量的关键字,有三种方法:1、使用IPC——PRIVATE让系统产生,
     // 2、挑选一个随机数,3、使用ftok从文件路径名中产生
  int nSemes,  //信号量集中元素个数
  int flag  //IPC_CREAT;IPC_EXCL 只有在信号量集不存在时创建
 )
 成功:返回信号量句柄
 失败:返回-1
 
 1.2 使用ftok函数根据文件路径名产生一个关键字
 key_t ftok(const char *pathname,int proj_id);
 路径名称必须有相应权限
 
 1.3 控制信号量
 int semctl(
  int semid,  //信号量集的句柄
  int semnum,  //信号量集的元素数
  int cmd,  //命令
  /*union senum arg */... // 
 )
 成功:返回相应的值
 失败:返回-1
 
 命令详细说明:
 cmd:   IPC_RMID 删除一个信号量
  IPC_EXCL 只有在信号量集不存在时创建
  IPC_SET 设置信号量的许可权
  SETVAL 设置指定信号量的元素的值为 agc.val
  GETVAL 获得一个指定信号量的值
  GETPID 获得最后操纵此元素的最后进程ID
  GETNCNT 获得等待元素变为1的进程数
  GETZCNT 获得等待元素变为0的进程数
 
 union senum 定义如下:
 union senum{
  int val;
  struct semid_ds *buf;
  unsigned short * array;
 }agc;
 其中 semid_ds 定义如下:
 struct semid_ds{
  struct ipc_pem sem_pem;  //operation pemission struct
  time_t sem_otime;  //last semop()time
  time_t sem_ctime;  //last


相关文档:

Linux 和 多线程

每次都是用到,查一下,写下,这次稍微记录下笔记。
和Thread相关,基本的有3个概念:线程的建立和销毁;线程锁;线程条件
关于建立线程:
ret = pthread_create(&thread_id, NULL, Do_Thread, &Do_Thread_Para);
// 第2参数是thread 属性,一般我不用设置
// 第4个参数是Do_Thread的入口参数,一般我传一个结 ......

Qt for symbian环境搭建(Linux)

Programming your application or library based on Qt has always had the promise that you can deploy your application on many different platforms. Development of those applications can, likewise, happen on many different platforms. QtCreator runs on Windows, Mac & Linux among others.
Qt很简单,易 ......

linux用户管理

目录索引
一、与用户管理相关的
配置文件;
1、/etc
/passwd 和/etc/groups
2、超级权
限控制 sudo 的配置文件/etc/sudoers ;
3、添加用
户规则文件 /etc/login.defs 和 /etc/default/useradd
二、添加用户工具和方
法;
1、useradd
工具;
1.1、
useraadd 命令中的 -D运用
1.2、
useradd 添加用户; ......

OMAP DSP 学习笔记(LINUX平台)(二)DMAI

DMAI(DaVinci Multimedia Application Interface)是DSP提供给ARM端应用程序的调用接口,DSP也是依赖于DSPLINK的。 DMAI中也提供了许多VISA (video, imaging, speech and audio)编解码的实例。DMAI提供的是一种功能的抽象,而在具体实现上,不同硬件平台,不同系统是不一个样的。另外,由于DMAI是以源代码的形式提供的,所以 ......

Linux 下 etc/ 目录文件详解

3. 网络配置文件
3.1 /etc/hosts
#/etc/hosts
#文件格式: IPaddress hostname aliases
#文件功能: 提供主机名到IP地址的对应关系,建议将自己经常使用的主机
# 加入此文件中,也可将没有DNS记录的机器加入到此文件中,
# 这样会方便网络应用
127.0.0.1 localhost localhost.localdomain
202.118.66.81 helius.dlut. ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号