O que significa o ESRCH?

12

Fora de: http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/errno.h.html

É sempre muito claro por que um código errno é nomeado de uma maneira específica, exceto por esta. Como o SRCH se relaciona com esse processo ?

PSkocik
fonte
Provavelmente grepou o pgrepdevolve devido a falha na pesquisa na lista de processos.
cat
Meu IDE, Atom , retorna ESRCH ao pesquisar na lista de pacotes, se não houver conexão com a Internet. Puramente anedótico, e provavelmente de propósito e não por acaso.
cat

Respostas:

11

O POSIX killdocumenta a conotação "search":

[ESRCH]
Nenhum processo ou grupo de processos pode ser encontrado correspondente ao especificado por pid.

A edição anterior (2004) forneceu na justificativa mais informações:

Algumas implementações fornecem extensões semânticas para a função kill () quando o valor absoluto de pid é maior que algum valor máximo ou especial. Valores negativos são um sinalizador para matar (). Como a maioria das implementações retorna [ESRCH] nesse caso, esse comportamento não está incluído neste volume da IEEE Std 1003.1-2001, embora uma implementação em conformidade possa fornecer essa extensão.

Thomas Dickey
fonte
4

A sequência ESRCH parece enigmática, mas depois de examinar os outros erros e suas sequências: (extraída de http://pubs.opengroup.org/onlinepubs/9699919799/functions/kill.html )

  • [EINVAL] O valor do argumento sig é um número de sinal inválido ou não suportado.
  • [EPERM] O processo não tem permissão para enviar o sinal para nenhum processo de recebimento.

Parece lógico que E significa erro, INVAL é inválido e PERM é permitido. Na mesma linha lógica, SRCH significa pesquisa.

Erro ao pesquisar o grupo pid / pid.

Loco
fonte
Bem-vindo ao U&L! Vejo que você referenciou a função kill e outros dois erros, mas ainda não vejo nenhuma evidência de suporte para a pergunta: como o "SRCH" se relaciona com "esse processo não existe"?
Jeff Schaller