Почему данный вызов write блокируется?..
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
const int SIZE = 1024*1024*512;
int main() {
char* buf = (char*) malloc(SIZE);
if (buf == NULL) {
fprintf(stderr, "Can't allocate memory!\n");
exit(1);
}
memset(buf, 0, SIZE);
remove("test.tmp");
int fd = open("test.tmp", O_WRONLY|O_CREAT|O_NONBLOCK);
printf("Writing...\n");
write(fd, buf, SIZE);
printf("Done!\n");
close(fd);
return 0;
}