URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 1652
[ Назад ]

Исходное сообщение
"Вызов system() возвращает неверный код завершения?"

Отправлено Филипп , 29-Апр-03 16:35 
Функция 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() возвращает неверный код завершения?"
Отправлено SergeiZz , 30-Апр-03 10:16 
>Результаты парадоксальны:
system() возвращает не код ошибки.
Если нужен код ошибки, нужно использовать
j= system("./ret");
j= WEXITSTATUS(j);