Функция system() возвращает неверный код завершения. В чем дело? Помогите советом, пожалуйста. Система - Red Hat Linux 6.2, ядро 2.4.5. glibc 2.0.Пример:
$ cat sys.c
#include <stdlib.h>
#include <stdio.h>int main (){
int j;
j=system("./ret");
printf("sys - %d\n",j);
exit(j);
}$ cat ret.c
#include <stdio.h>int main(){
int i;
scanf("%d",&i);
printf("%d\n",i);
exit(i);
}Результаты парадоксальны:
$ ./sys
2
2
sys - 512$ ./sys
4
4
sys - 1024$ ./sys
1024
1024
sys - 0В чем может быть дело?
Филипп
>Результаты парадоксальны:
system() возвращает не код ошибки.
Если нужен код ошибки, нужно использовать
j= system("./ret");
j= WEXITSTATUS(j);