易截截图软件、单文件、免安装、纯绿色、仅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的入口参数,一般我传一个结 ......

在Linux下配置jdk环境

一、JDK下载:http://java.sun.com下载自解压包:jdk.bin
#sh jdk.bin 按提示选择yes。到此JDK已经安装完成
二、设置环境变量
假如jdk安装到了/usr目录下。在/etc/profile中的最底端里写入如下:
#vi /etc/profile
#Set Environment by NetSeek (2005/9/5)
export JAVA_HOME=/usr/jdk
export JRE_HOME=/usr/jdk/jre
PA ......

Linux 各模块架构图


 
  Resources on the site
• Interactive map of GNU/Linux OS and FOSS
• "GNU/Linux is my home" - map of GNU/Linux system
• Interactive map of Linux kernel
• Linux inside
• Linux Technology Reference (single page view)
• Linux kernel diagram
• Li ......

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 添加用户; ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号