Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Аналог PHP функции system()

1.9K
29 июля 2007 года
Goblin
55 / / 02.03.2004
Подскажите, как реализована функия system в PHP.
Или это обычный ShellExecute cmd.exe?
334
29 июля 2007 года
HexEdit
809 / / 27.07.2006
Скажем тут нужно использовать каналы (Pipes).
Создаешь канал, затем прописываешь его в STARTUPINFO в CreateProcess(!).
Код:
HANDLE hRead;
HANDLE hWrite;
STARTUPINFO stinfo;
PROCESS_INFORMATION prinfo;

if (CreatePipe(&hRead, &hWrite, NULL, <размер, 0-стандартный>));
    stinfo.cb = sizeof(STARTUPINFO);
    ... //заполнить необходимые поля
    stinfo.hStdInput = hRead;
    stinfo.hStdOutput = hWrite;
    stinfo.hStdError = hWrite;
    // создаем процесс
    if(CreateProcess("cmd.exe", "/C appname.exe", NULL, NULL, FALSE, 0, NULL, <working_dir>, &stinfo, &prinfo);
        // делаем что нужно
    } else {
        // обрабатываем ошибку
    }
} else {
    // обрабатываем ошибку
}

ЗЫ. Вроде так :)
4
29 июля 2007 года
mike
3.7K / / 01.10.2002
Вообще, system() - изначально - не функция PHP, а функция C POSIX 2:

The system() function conforms to ISO/IEC 9899:1990 (``ISO C90'') and is expected to be IEEE Std 1003.2 (``POSIX.2'') compatible.

 
Код:
NAME
     system -- pass a command to the shell
LIBRARY
     Standard C Library (libc, -lc)
SYNOPSIS
     #include <stdlib.h>
     int
     system(const char *string);
1.9K
30 июля 2007 года
Goblin
55 / / 02.03.2004
А если будет нужно что-то типо ftp сессии?
такое можно сотворить?
ну чтоб не одна команда, а (комманда->ответ;комманда->ответ)
как полноценное cmd.exe?
334
01 августа 2007 года
HexEdit
809 / / 27.07.2006
То что я описал выше....
Думаю найдешь в инете не мало примеров на данную тему (Использование каналов для коммуникации с консольными приложениями).
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог