Създайте празен файл sentences.txt, в случай на неуспех отпечатайте грешка и излезте. Направете 100 пъти следното: извикайте getSentence(), за да получите нов текст в буфера и неговата дължина, запишете буфера във файла и запишете броя на байтове. Ако броят на записаните байтове е -1, отпечатайте грешка и излезте. Затворете файла, при неуспех изведете грешка.
writefile.c
#include<fcntl.h>#include<stdio.h>#include<unistd.h>#include<errno.h>#include<sys/time.h>#include<string.h>#defineBUF_SIZE1000000longgetMicrotime(){struct timeval currentTime;gettimeofday(¤tTime,NULL);returncurrentTime.tv_sec * (int)1e6+currentTime.tv_usec;}intgetSentence(char*buf) {sprintf(buf,"%ld> This is a new sentence.\n", getMicrotime());returnstrlen(buf);}intmain(int argc,char*argv[]){int fd; fd =open("./sentences.txt", O_WRONLY | O_CREAT | O_TRUNC,0644);if (fd ==-1) {printf("ERROR opening the file!\n");return-1; }char buf[BUF_SIZE];for (int i=0; i <100; i++) {int text_len =getSentence(buf);ssize_t nr =write(fd, buf, text_len);if (nr ==-1) {printf("ERROR writing to the file!\n");break; } }if (close(fd)==-1) {printf("ERROR closing the file!\n");return-2; }printf("SUCCESS!\n");return0;}