第2题:
使用open()函数以'w'模式打开文件进行写入操作时,如果原文件中有内容,则会被新写入的内容覆盖掉
#INCLUDE <STDIO.H>#INCLUDE <STDLIB.H>#INCLUDE <UNISTD.H>#INCLUDE <FCNTL.H>#INCLUDE <STRING.H>INT MAIN(){ INT FD = 0; //路径中的目录若不存在将导致文件创建失败 CHAR FILENAME[20] = "/HOME/ITHEIMA/A.TXT"; //打开文件 FD = OPEN(FILENAME, O_RDWR | O_EXCL | O_TRUNC, S_IRWXG); IF (FD == -1){ //判断文件是否成功打开 PERROR("FILE OPEN ERROR.N"); EXIT(-1); } //写数据 INT LEN = 0; CHAR BUF[100] = { 0 }; SCANF("%S", BUF); LEN = STRLEN(BUF); WRITE(FD, BUF, LEN); CLOSE(FD); //关闭文件 PRINTF("---------------------N"); //读取文件 FD = OPEN(FILENAME, O_RDONLY); //再次打开文件 IF (FD == -1){ PERROR("FILE OPEN ERROR.N"); EXIT(-1); } OFF_T F_SIZE = 0; F_SIZE = LSEEK(FD, 0, SEEK_END); //获取文件长度 LSEEK(FD, 0, SEEK_SET); //设置文件读写位置 WHILE (LSEEK(FD, 0, SEEK_CUR) != F_SIZE) //读取文件 { READ(FD, BUF, 1024); PRINTF("%SN", BUF); } CLOSE(FD); RETURN 0;}