首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从多个进程调用系统调用

从多个进程调用系统调用
EN

Stack Overflow用户
提问于 2014-10-18 22:48:25
回答 1查看 62关注 0票数 1

我在Linux中实现了一个新的系统调用:

代码语言:javascript
复制
void do_test(unsigned char *input, unsigned char *output){
    unsigned char *pt;     
    // do something complex with pt; 
}

do_test系统调用由运行在Linux中的许多进程调用。

我是否应该担心多个进程具有共享变量*pt的竞争条件(即,它处于不一致的状态)?或者,每个进程都有自己版本的内核代码,因此进程A中使用的*pt与进程B中使用的不同?

如果有竞态条件,我该如何锁定它?

EN

回答 1

Stack Overflow用户

发布于 2015-01-07 09:11:32

unsigned char *pt;是一个局部变量,它不是共享的,因为每个进程都有自己的syscall堆栈。它们共享相同的代码,但运行在不同的堆栈上。

所以不,如果你坚持使用局部变量,你就不需要任何锁,也不会冒任何数据竞争的风险。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26441024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档