Что означает ESRCH?

12

Из: http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/errno.h.html

Всегда понятно, почему код ошибки назван особым образом, кроме этого. Как SRCH относится к Нет такого процесса ?

PSkocik
источник
Возможно grepили pgrepвозвращает его из-за невозможности поиска в списке процессов.
кот
Моя IDE, Atom , возвращает ESRCH при поиске в списке пакетов, если нет подключения к Интернету. Чисто анекдотично, и, вероятно, нарочно, а не случайно.
кот

Ответы:

11

POSIX killдокументирует значение «поиск»:

[ESRCH]
Не найдено ни одного процесса или группы процессов, соответствующих указанному в pid.

Предыдущий выпуск (2004) дал в обоснование дополнительной информации:

Некоторые реализации предоставляют семантические расширения функции kill (), когда абсолютное значение pid больше некоторого максимального или иного специального значения. Отрицательные значения - это флаг kill (). Поскольку большинство реализаций возвращают [ESRCH] в этом случае, это поведение не включено в этот том IEEE Std 1003.1-2001, хотя соответствующая реализация может обеспечить такое расширение.

Томас Дики
источник
4

Строка ESRCH выглядит загадочно, но после просмотра других ошибок и их строк: (взято с http://pubs.opengroup.org/onlinepubs/9699919799/functions/kill.html )

  • [EINVAL] Значением аргумента sig является недопустимый или неподдерживаемый номер сигнала.
  • [EPERM] У процесса нет разрешения на отправку сигнала любому процессу получения.

Кажется логичным, что E обозначает ошибку, INVAL - недействительно, а PERM - разрешение. В той же логической строке SRCH обозначает поиск.

Ошибка поиска pid / pid группы.

астрагал
источник
Добро пожаловать в U & L! Я вижу, что вы ссылались на функцию kill и две другие ошибки, но я пока не вижу каких-либо подтверждающих доказательств для Вопроса: как "SRCH" относится к "Нет такого процесса"?
Джефф Шаллер