Browse Source Download (without any required ccan dependencies)
read_write_all
read_all and write_all routines.
Rusty Russell <rusty@rustcorp.com.au>
Successful read and write calls may only partly complete if a signal is received or they are not operating on a normal file.
read_all() and write_all() do the looping for you.
#include <err.h>
#include <stdio.h>
#include <unistd.h>
#include <ccan/read_write_all/read_write_all.h>
#define BUFFER_SIZE 10
int main(int argc, char *argv[])
{
char buffer[BUFFER_SIZE+1];
if (!read_all(STDIN_FILENO, buffer, BUFFER_SIZE))
err(1, "Could not read %u characters", BUFFER_SIZE);
buffer[BUFFER_SIZE] = '\0';
printf("I read '%.*s'\n", BUFFER_SIZE, buffer);
return 0;
}
LGPL (v2.1 or any later version)