從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