从java程序中,我想执行一个脚本,它从指定的文件夹读取输入并生成gcov数据。该脚本正确生成部分gcov数据,但直到我明确终止我的java程序后才生成剩余数据,之后它按预期完成其工作。子进程与父进程之间出现死锁条件
下面是启动脚本代码:
try {
Process proc = Runtime.getRuntime().exec("/bin/bash CovSeq.sh");
proc.waitFor();
System.out.println("Generated gcov Data");
} catch(Exception e) {
System.err.println("Error: "+e.getMessage());
}
这里是脚本:
#!/bin/bash
lines=($(cat path))
mkdir output
mkdir gcovOut
rm -f -r ./gcovOut/*
rm -f -r ./output/*
gcc -g -o temp_exec -fprofile-arcs -ftest-coverage ${lines[0]}
path1=`pwd`
cd ${lines[1]}
for i in `ls *`
do
cd $path1
./temp_exec < ${lines[1]}/$i > ./output/$i
gcov -b -c ${lines[0]}
mkdir ./gcovOut/$i
mv *.gcov ./gcovOut/$i
mv *.gcda ./gcovOut/$i
cd ${lines[1]}
done
bufferreader可以帮助我....问题解决....谢谢 – ankur 2012-03-07 15:45:13