Почему passthru(), system() и exec() возвращают значение "126"?
При вызове passthru(), system() и exec() я получаю значение 126 вместо того, что выводит команда.
Исходный код скрипта PHP:
<?php
system("parser 1 /var/www/checklinks/data/test.txt",$output);
echo $output;
?>
Исходный код команды (С):
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
FILE *in;
char c = ' ';
char *m;
m = argv[1];
unsigned long int count = 0;
in = fopen(argv[2], "r");
if (strcmp(argv[1], "1") == 0) {
while (!feof(in)) {
fscanf(in, "%c", &c);
if (c == '\n')
count++;
}
}
if (strcmp(argv[1], "2") == 0) {
while (!feof(in)) {
fscanf(in, "%c", &c);
if (c != '\n') {
if (c != ' ')
count++;
}
}
}
fclose(in);
printf("%d", count);
}
Как сделать так, что бы функции возвращали то, что возвращает программа ?
Заранее спасибо.
Источник: Stack Overflow на русском