【发布时间】:2015-05-02 01:56:43
【问题描述】:
我正在尝试使用环境变量来同步多个进程。我看到 bash 脚本将 RUN_NOW 变量设置为 1,但 C 脚本从未看到它并停留在无限循环中。
另外,你知道为什么 bash 脚本中的 gnome-terminal 行不起作用吗? (xterm 命令确实有效)。
感谢您的建议,
珍妮
来自 myT 的 C 代码 (我有 n 个进程,每个进程有 m 个线程;每个线程执行这段代码)
pEnvRun_Now = EnvRun_Now;
pEnvRun_Now = getenv("RUN_NOW");
printf("RUN_NOW (string) = %s",pEnvRun_Now);
iRun_Now = atoi(pEnvRun_Now);
printf("RUN_NOW (int) = %d",iRun_Now);
while ( iRun_Now == 0){
sleep(1);
pEnvRun_Now = getenv("RUN_NOW");
printf("RUN_NOW (string) = %s\n",pEnvRun_Now);
iRun_Now = atoi(pEnvRun_Now);
printf("RUN_NOW (int) = %d\n",iRun_Now);
}
Bash 脚本
else
export RUN_NOW=0
echo "RUN_NOW = $RUN_NOW"
Num_Procs=$1
Num_Threads=$2
Elapsed_Secs=60
Priority=$3
echo "Num_Threads = $Num_Threads"
echo "Elapsed_Secs = $Elapsed_Secs"
echo "Priority = $Priority"
if [[ $4 -eq 0 ]];
then
echo "Schedule $4 = FIFO"
else
echo "Schedule $4 = Round Robin "
fi
for (( i = 0; i < $Num_Procs; i++ )); do
xterm -e ./myT "$Num_Threads" "$Elapsed_Secs" "$Priority" "$4" &
gnome-terminal -x sh -c ./myT "$Num_Threads" "$Elapsed_Secs" "$Priority" "$4" &
gnome-terminal -x sh -c "./myT $Num_Threads $Elapsed_Secs $Priority $4" &
done
export RUN_NOW=1
echo "RUN_NOW = $RUN_NOW"
wait
fi
【问题讨论】:
标签: bash gcc environment-variables gnome-terminal