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

Linux 下共享内存建立时需要注意的问题

在linux下使用共享内存时,照着书上或者网上的方法,使用shmat函数时,老是会碰到一个问题
提示:
shmat error
permission denied
每次需要sudo一下才能够正常运行,并且如果普通用户使用ipcs查看的话,是看不见已经分配的共享内存的,需要在root用户下才能看见, 最开始以为是shmat需要root用户的权限,后来发现不是这样。
造成这个问题的成因是在使用shget的时候,没有赋于开辟的共享内存对应的读写权限。
shget函数原型如下
int shmget( key_t shmkey , int shmsiz , int flag );
注意最后一个形参 flag,表示当前内存的模式
(mode)以及权限标识。
可以取如下的值
模式可取如下值: 新建:IPC_CREAT
如果标识符以存在,则返回错误值:IPC_EXCL
然后将“模式” 和“权限标识”进行“或”运算,做为第三个参数。
如: IPC_CREAT | IPC_EXCL | 0666

shmid = shmget( shmkey , sizeof(in_data) , IPC_CREAT |
0666 ) ;
这样,一切ok. 不需要root权限,用ipcs也能看到当前用户建立的共享内存信息


相关文档:

LINUX C 定时器

【实现功能】:Linux下的C编程:编写一个程序(库),实现定时器(计时器)的功能,它能为用户提供在同一进程中多次使用的定时器。这里要求用信号来实现。
【解题思路】:编写一个结构体Timer代表一个计时器,然后再定义Timer类型的数组myTimer[N],用来保存我们设置的定时器;再定义函数setTimer()生成计时器,并将生成 ......

Linux桌面的宣传与普及






<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
A:link { so-language: zxx }
-->
    当今,
Linux
桌面到宣传与普及应该进入一个新时期。何故?
 
    今年
4

29
日,
Ubuntu
10.04
发布是在
Linux
桌面发展历史上的一个 ......

linux下tomcat自动启动简便方式


修改配置文件,使tomcat自动启动
(假设tomcat的安装路径位于 /opt/apache-tomcat5.5.26目录下)
在root根目录下,输入 vi /etc/profile
在profile文件中加入下面几句话
   cd /opt/apache-tomcat5.5.26/bin
   chmod 777 *  // 把bin目录下的所有文件的权限设置最大,否则将不能运行
  ......

配置自己的Linux svnserve服务器

一、新建并初始化版本库
1.新建代码仓库
# svnadmin create /home/myrepos
这样,我们就在/home目录下新建了版本库myrepos。
2.初始化代码仓库
#mkdir -p code/{branches,tags,trunk}
按照svn手册上的建议,我们版本库的布局采用branches/tags/trunk这样的三个目录。
然后可以将代码直接拷贝的trunk目录,也可以随后 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号