|
|
|
| Здравствуйте!
Я хочу написать маленький обработчик выполнения system(), но суть в том, что system() не всегда возвращает строку результата, и следовательно надо как-то отследить ошибку. Судя по документации system() возвращает FALSE в случае неудачи, но даже при некорректной команде мой обработчик:
<?php
if(system('команда')===false)
{
...
}
?>
|
не срабатывает. Я прочитал, что во второй аргумент system() можно поместить переменную, которая будет возвращать статус выполнения команды в виде числа. Вопрос: как по этому числовому статусу определить произошла ли ошибка?
ОС Unix/Linux. | |
|
|
|
|
|
|
|
для: AVS
(20.05.2008 в 19:22)
| | >Вопрос: как по этому числовому статусу определить произошла ли ошибка?
Обычно возращают 0, если всё нормально и 1, если произошла ошибка. Однако, это не жёсткое правило, и программа может возвращать что угодно в зависимости от богатства фантазии программиста. | |
|
|
|
|
|
|
|
для: cheops
(21.05.2008 в 11:39)
| | >программа может возвращать что угодно в зависимости от богатства фантазии программиста
Поясните, пожалуйста. Как это? Я обращаюсь к таким командам как tar,rm и т.п., т.е. не обращаюсь каким-то утилитам (например, к mysqldump). Мне необходимо явно отследить появление ошибки именно при создании директорий, архивов и удалении объектов посредством system(). Я несколько раз тестировал скрипт и смотрел, какой числовой статус вернет system() и обратил внимание, что если все успешно, возвращается 0, если ошибка, то возвращается какое-либо число отличное от нуля. | |
|
|
|
|
|
|
|
для: AVS
(21.05.2008 в 19:04)
| | Всё верно, при создании tar, rm и других системных утилит программисты старались придерживаться озвученных выше рекомендаций - от них можно не ждать неожиданностей. | |
|
|
|
|
|
|
|
для: cheops
(22.05.2008 в 10:38)
| | Вы не знаете адрес какого-нибудь русскоязычного ресурса, где можно ознакомится со списком системных утилит Unix, чтобы знать каким из них можно доверять при контроле за возвращаемыми значениями? | |
|
|
|
|
|
|
|
для: AVS
(22.05.2008 в 16:01)
| | Попробуйте найти книгу
Андрей Робачевский "Операционная система Unix" | |
|
|
|
|
|
|
|
для: AVS
(22.05.2008 в 16:01)
| | Вряд ли это можно сказать наверняка, однако, скорее всего это все GNU-функции, если вам доступна командная строка - можно справится об этом в man. | |
|
|
|