beswkwangbo 发表于 2016-06-04 13:59

linux 如何设置全局变量的内存读写权限?

例如,有一个全局数组,有没有办法修改它的读写权限。让它只在某函数内可以写,而在其他代码里只读。
谢谢!

镇水铁牛 发表于 2016-06-05 08:38

要么用读写锁,要么用函数封装全局数组,里面做函数名判定

beswkwangbo 发表于 2016-06-05 12:12

回复 2# 镇水铁牛


    请问读写锁是 mprotect 吗?我查了一圈似乎只有 mmap 和 mprotect 可以动态的修改读写属性。

    还有第二种是如何实现?没有理解怎样函数封装和判定。

镇水铁牛 发表于 2016-06-05 13:38

回复 3# beswkwangbo
只要能保证数据一致性就行。你要保护的是数组,第二种我理解错了
   

Tinnal 发表于 2016-06-06 11:19

回复 3# beswkwangbo

1. mprotect只能按页大小保护(4K的整数倍)
2. mprotect只能按进程的维度去管理,不能这个函数能访问,别外的函数不能访问。




   
页: [1]
查看完整版本: linux 如何设置全局变量的内存读写权限?