是否可以将对变量的引用作为参数发送到C?
中的可执行文件假设我有一个名为Data={
num_files:2
}
Video = {
preview: {
play_all: function(){
for(i=0;i<Data.num_files;i++){
$('#video'+i).get(0).play();
}
}
}
}
的父进程,它定义了多个数组。现在,如果我main
和fork()
每个数组都调用一个名为exec*()
的C程序。我的问题是:我可以创建一个sort
程序,可以通过引用访问数组(在sort
中定义)吗?如何将引用传递给main
?
我在这个实现中看到的优点是当父进程将引用传递给数组时我得到的简单性,一旦main
正确退出,数组就会被排序。 (鉴于,我必须编写并使用该程序sort
。)
答案 0 :(得分:3)
不,你不能。使用exec*()
函数执行流程后,它无法再访问旧流程的变量。
man execlp
exec()
系列函数用新的过程映像替换当前过程映像。
您可以通过exec
数组传递argv
d程序值
参数。如果由于您拥有复杂的数据结构而无法实现,那么
您可以在程序之间使用共享内存。见How to use shared memory with Linux in C