c语言实现使用文件IO而不是标准IO实现“每隔1秒向文件1.txt写入当前系统时间,行号递增”
时间: 2024-04-12 21:29:10 浏览: 228
如果您想使用文件I/O而不是标准I/O来实现每隔1秒向文件1.txt写入当前系统时间并递增行号,可以使用以下C代码:
```c
#include <stdio.h>
#include <time.h>
#include <unistd.h>
#include <fcntl.h>
int main() {
int fileDescriptor;
int lineNum = 1;
while (1) {
// 获取当前系统时间
time_t currentTime = time(NULL);
struct tm *timeInfo = localtime(¤tTime);
char timeString[80];
strftime(timeString, sizeof(timeString), "%Y-%m-%d %H:%M:%S", timeInfo);
// 打开文件,以追加模式写入
fileDescriptor = open("1.txt", O_WRONLY | O_CREAT | O_APPEND, 0644);
if (fileDescriptor == -1) {
printf("无法打开文件.\n");
return 1;
}
// 写入时间和行号
dprintf(fileDescriptor, "%d: %s\n", lineNum, timeString);
// 关闭文件
close(fileDescriptor);
// 行号递增
lineNum++;
// 等待1秒
sleep(1);
}
return 0;
}
```
这段代码使用了`open()`函数来打开文件,并使用了`O_WRONLY`、`O_CREAT`和`O_APPEND`标志来指定写入模式。然后,它使用`dprintf()`函数将时间和行号写入文件。之后,关闭文件描述符并递增行号。最后,使用`sleep()`函数等待1秒,然后进入下一次循环。
同样地,这段代码也是以无限循环的方式运行,您可以通过按下 `Ctrl + C` 来停止程序的运行。
阅读全文