Es obvio que, en general, la llamada al sistema de lectura (2) puede devolver menos bytes de lo que se pidió que se leyera. Sin embargo, bastantes programas asumen que al trabajar con archivos locales, leer (2) nunca devuelve menos de lo que se solicitó (a menos que el archivo sea más corto, por supuesto)."lectura corta" del sistema de archivos, ¿cuándo puede suceder?
Entonces, mi pregunta es: ¿en Linux, en qué casos puede leer (2) devolver menos de lo que se solicitó si lee un archivo abierto y no se encuentra EOF y la cantidad que se lee es de unos pocos kilobytes como máximo?
Algunas conjeturas:
- puede recibió señales de interrumpir una lectura de esa manera, pero no hacer que falle?
- ¿Pueden los diferentes sistemas de archivos afectar a este comportamiento? ¿Hay algo especial sobre jffs2?
¿Qué programas "asumen que al trabajar con archivos locales, leer (2) nunca devuelve menos de lo que se solicitó"? En el caso general, eso suena como un error. – Ken
Por ejemplo, fstype binary in klibc utils. Parece que muchos programas de bajo nivel que pueden suponer que están trabajando con archivos suponen directamente que las lecturas nunca son cortas. – Nakedible