Почему passthru(), system() и exec() возвращают значение "126"?

Рейтинг: 0Ответов: 3Опубликовано: 26.03.2011

При вызове 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);
}

Как сделать так, что бы функции возвращали то, что возвращает программа ?

Заранее спасибо.

Ответы

Ответов пока нет.