GNU/Linux >> Tutoriales Linux >  >> Linux

¿Dónde se define ssize_t en Linux?

Desde la versión 5.9, las páginas de manual de Linux documentan los tipos de datos del sistema, para que pueda encontrar esta información fácilmente de manera centralizada.

Solo escribe man ssize_t :

ssize_t(3type)      Linux Programmer’s Manual     ssize_t(3type)

NAME
       ssize_t - count of bytes or an error indication

LIBRARY
       Standard C library (libc)

SYNOPSIS
       #include <sys/types.h>

       typedef /* ... */ ssize_t;

DESCRIPTION
       Used  for  a  count of bytes or an error indication.  Ac‐
       cording to POSIX, it shall be a signed integer type capa‐
       ble  of  storing  values  at  least  in  the  range  [-1,
       SSIZE_MAX],  and  the implementation shall support one or
       more programming environments where the width of  ssize_t
       is no greater than the width of the type long.

       Glibc  and  most  other  implementations provide a length
       modifier for ssize_t for the printf(3) and  the  scanf(3)
       families  of functions, which is z; resulting commonly in
       %zd or %zi for printing ssize_t values.  Although z works
       for ssize_t on most implementations, portable POSIX  pro‐
       grams  should  avoid  using it—for example, by converting
       the value to intmax_t and using its length modifier (j).

VERSIONS
       <aio.h>, <mqueue.h>,  and  <sys/socket.h>  define  ssize_t
       since POSIX.1‐2008.

CONFORMING TO
       POSIX.1‐2001 and later.

NOTES
       The  following  headers  also provide this type: <aio.h>,
       <monetary.h>,   <mqueue.h>,    <stdio.h>,    <sys/msg.h>,
       <sys/socket.h>, <sys/uio.h>, and <unistd.h>.

SEE ALSO
       read(2),   readlink(2),   readv(2),   recv(2),   send(2),
       write(2), ptrdiff_t(3type), size_t(3type)

Linux                      2022‐06‐17             ssize_t(3type)

Si solo quieres ssize_t , debe incluir <sys/types.h> , que es su encabezado canónico, y probablemente el más ligero que proporciona ssize_t . Sin embargo, lo proporciona cualquiera de los encabezados documentados, por lo que si también necesita una definición en uno de esos otros encabezados, puede incluir solo ese otro encabezado.


ssize_t se define en sys/types.h .

Según la documentación de POSIX:

NOMBRE

sys/types.h - tipos de datos

SINOPSIS

#include <sys/types.h>

DESCRIPCIÓN

El encabezado deberá definir al menos los siguientes tipos:

...

ssize_t

Se utiliza para un recuento de bytes o una indicación de error.


Linux
  1. Linux:¿dónde se almacena un semáforo con nombre?

  2. GUI personalizada de Linux:¿Por dónde empezar?

  3. ¿Dónde se define PATH_MAX en Linux?

  4. ¿Dónde almacena Linux mi syslog?

  5. ¿Dónde debo instalar mi aplicación en Linux?

Comando W en Linux

Al mando en Linux

Linux:¿dónde se almacena la cadena de entorno real?

¿Dónde está el archivo php.ini en una PC con Linux/CentOS?

¿Dónde colocar el script de autocompletado zsh en Linux?

¿Dónde está la declaración de desaprobación de ifconfig (en Linux)?