linux 共享内存为分配,Linux 下共享内存建立时需要注意的问题

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也能看到当前用户建立的共享内存信息

相关文档:

总览

用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 ......

Linux终端环境下,利用终端命令序列可以设置字体的颜色,其格式如下:

[;;m

其中的值为 ......

<1> 任务0的堆栈问题

一直不明白schedule.c里的task_union的stack和user_stack是什么关系,head.s里就设置了esp指向user_stack, 却一直没有用到task_union,直到看到INIT_TASK才明白,从进入保护模式到跳转进用户态都是用的user_stack这个栈,而任务0的tss中的esp0指向task_union的stack, 也就是当任务0再跳转进内核 ......

Covtool

是一个用对

C++

代码进行运行时覆盖率检查的工具,可以以行为单位检查出那些代码在运行中被使用,那些没有使用。

1.

安装

make

make tests

make install

/usr/local/covtool

添加到

PATH

/usr/local/covtools

添加到

MANPATH(此步很重要,它的man比� ......

crontab的用法---linux定时任务

2008年07月30日 星期三 下午 01:00

crontab的用法---linux定时任务

Step 1:

使用命令crontab

-e编辑一个定时执行的任务或在/var/spool/cron/crontabs目录下新建一个与自己用户名相同的任务.

即:

#每隔一分钟执行一次� ......

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值