Bueno, dado que los errores suelen ocurrir al hacer algo, lo mejor es buscar en la página de man
"algo".
Por ejemplo, si recibe de vuelta un errno
de 34 a partir de su llamada fscanf()
, primero haces:
grep 34 $(find /usr/include -name '*errno*h')
de averiguar cuál era el error:
/usr/include/bits/errno.h:#define ERANGE 34 /* Math result not representable. */
/usr/include/asm-generic/errno-base.h:#define ERANGE 34 /* Math result not ... */
Entonces, mirando en la página man
para fscanf()
, ves:
ERANGE - The result of an integer conversion would exceed the size
that can be stored in the corresponding integer type.
y usted (con suerte) será capaz de resolverlo desde allí.
Si desea una lista de los errores y (breve), modificar el grep
por encima de la siguiente manera:
grep define $(find /usr/include -name '*errno*h') | less
y navegar por la salida.
Y, si aún no sabe sobre el error y qué lo causó (las descripciones son un tanto escuetas, estaré de acuerdo), simplemente lo tacle (por ejemplo, EADDRNOTAVAIL
) en ese pequeño cuadro de diálogo en la esquina superior derecha de su navegador y que pondremos en algo así como this (o muchas otras páginas maravillosas):
no puede asignar solicitada dirección de
está intentando bind(2)
a una dirección local eso no es local Por ejemplo, si las direcciones IP de una máquina son 127.0.0.1
y 1.2.3.4
y está intentando vincularse al 1.2.3.5
, obtendrá este error. Verifique que la dirección a la que intenta vincular exista en la máquina a la que intenta vincularla.
Este error también puede aparecer si está haciendo una "conexión pre-enlazada", en la que primero se vincula a un puerto local, luego se realiza una conexión saliente con un socket. Si el puerto local ya está conectado a la dirección IP y al puerto (es decir, ya existe un par de socket idéntico), recibirá este error (valor = 99 en Linux).
4 páginas enlazan a EADDRNOTAVAIL
:
- bind (2)
- de conexión (2)
- setsockopt (2)
- de paquetes (7)
Vaya por delante, intentarlo con otros valores de error, así, no es demasiado malo.
Usted está usando Firefox, ¿verdad? :-)
Sí estoy de acuerdo con usted ... Pero Alex la sección de errores en cada página hombre todavía tiene la misma línea única. .. :( – codingfreak
@codingfreak Muchos de ellos pueden ser iguales, pero no necesariamente. Por ejemplo, 'EPERM' es diferente para' man 2 open' y 'man 2 pthread_create' y debe manejarse de manera diferente. –