#define _BSD_SOURCE #include #include #include #include #include #include #include void handler(int s) { fprintf(stderr,"signal %d received!\n",s); } int main(int argc, char* argv[]) { printf("pid = %d\n", getpid()); signal(SIGINT, handler); int fd = open("/tmp/toto", O_WRONLY | O_TRUNC | O_CREAT | O_SYNC, 0644); size_t size = 2*1000*1000*1000; // ~2GB char * buffer = malloc(size); perror("malloc"); if(!buffer) { return 0; } printf("writing ~2G in /tmp/toto... try to interrupt me with ctrl-c?\n"); ssize_t w = write(fd, buffer, size); perror("write"); printf("write %zd / %zd\n", w, size); close(fd); }