Xin lỗi anh quanta và mọi ngừoi
nguyên nhân là như vầy:
Code:
while (true) {
MPI_Recv(&so1, 1, MPI_INT, 0, RESPONSE, MPI_COMM_WORLD, &status);
...
while (so1 < so2 && bFinish == false) {
sprintf(command, "./unrar x -p%d ./file.rar 1>/dev/null 2>/dev/null", so1);
int err = system(command);
if (err == 0) { //truong hop dung password
....
break;
}
...
}
}
Chương trình này mò password cho file rar .
Lúc mình gọi hàm system(command);
lúc đó thằng unrar nó hoạt động ban đầu nó sẽ tạo ra 1 file trống, tiếp theo nó đòi password :
+nếu password đúng -->mở và ghi file bình thường
+Password sai thì nó sẽ xóa cái file trống đó.
Vấn đề sẽ không có gì nếu đoạn chuơng trình này chạy với 1 máy nhưng do ở đây mình chạy parallel nên cái đó là có vấn đề.
giải quyết: với 1 máy sẽ tạo ra 1 thư mục tạm sau đó unrar vô thự mục đó
Tóm lại:nguyên nhân là xung đột việc thao tác trên cùng 1 file