Linux信号量 共享内存和消息队列
Linux信号量 共享内存和消息队列
1. 信号量
使用信号量可以实现进程间同步。主要函数定义:
#include <sys/sem.h>
int semctl(int sem_id, int sem_num, int command, …);
int semget(key_t key, int num_sems, int sem_flags);
int semop(int sem_id, struct sembuf *sem_ops, size_t num_sem_ops);
semget函数根据提供的key生成信号量标识符;
semctl函数初始化或者删除信号量标识符;
semop函数改变信号量大小
2. 共享内存
共享内存机制使得两个不相关进程可以读取和修改同一段内存从而实现数据共享。主要函数定义:
#include <sys/shm.h>
void *shmat(int shm_id, const void *shm_addr, int shmflg);
int shmctl(int shm_id, int cmd, struct shmid_ds *buf);
int shmdt(const void *shm_addr);
int shmget(key_t key, size_t size, int shmflag);
shmget函数根据key生成有效的共享内存段名,根据参数size产生共享的内存容量。
shmat函数将创建的共享内存段连接到一个进程的内存空间中,这样才可以使用该段内存。
shmdt函数将共享内存从当前内存中分离。
shmctl函数可以删除共享内存段。
3. 消息队列
消息队列和命名管道非常类似,但少了打开和关闭管道的复杂性。主要函数如下:
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
int msgctl(int msqid, int cmd, struct msqid_ds *buf);
int msgget(key_t key, int msgflg);
int msgrcv(int msqid, void *msg_ptr, size_t msg_sz, long int msgtype, int msgflg);
int msgsnd(int msqid, const void *msg_ptr, size_t msg_sz, int msgflg);
相关文档:
总览
用iptables -ADC 来指定链的规
则
,-A添加 -D删除 -C 修改
iptables - [RI] chain rule num rule-specification[option]
用iptables - RI 通过规则的顺序指定
iptables -D chain rule num[option]
删除指定规则
iptables -[LFZ] [chain][option]
用iptables -LFZ 链名 [选项]
iptables -[NX] chain
用 -NX ......
一、 jdk的安装
1. 下载jdk: 从www.sun.com下载jdk( jdk-1_5_0_20-linux-i586-rpm.bin ),下载后使用ssh上传到linux系统的home目录下,当然也可以放在其它目录。
2. 进入安装目录,修改jdk的使用权限,给所有用户添加可执行的权限:
#cd /home
#chmod +x jdk-1_5_0_20-linux-i586.rpm.bin ......
Linux环境下的软件安装,并不是一件容易的事情;如果通过源代码编译后在安装,当然事情就更为复杂一些;现在安装各种软件的教程都非常普遍;但万变不离其中,对基础知识的扎实掌握,安装各种软件的问题就迎刃而解了。Configure脚本配置工具就是基础之一,它是autoconf的工具的基本应用。
与一些技巧相比,Configure显得基础一 ......
安装步骤:
Ø 安装resin前先要保证安装了JDK,可以用命令查看是否安装了JDK:
[root@wxr webapps]# java -versions
java version "1.6.0_19"
Java(TM) SE Runtime Environment (build 1.6.0_19-b04)
Java HotSpot(TM) Client VM (build 16.2-b04, mixed mode, sharing)
Ø 下载Res ......
groups 查看当前登录用户的组内成员
groups gliethttp 查看gliethttp用户所在的组,以及组内成员
whoami 查看当前登录用户名
/etc/group文件包含所有组
/etc/shadow和/etc/passwd系统存在的所有用户名
添加用户abc到root群组:
gpasswd -a abc root ......