C语言写一个通过write函数每隔一秒往“/mnt/mmc01/111.txt”里写数据的程序
时间: 2024-09-15 19:06:28 浏览: 38
在C语言中,我们可以使用`time.h`库来处理时间间隔,并利用`fcntl()`和`unistd.h`库中的`write()`函数来持续向文件写入数据。下面是一个简单的示例程序,它会每秒向指定文件写入一次特定的内容:
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <time.h>
#define FILE_PATH "/mnt/mmc01/111.txt"
#define DATA "This is a new line written every second.\n"
int main() {
int fd = -1;
struct timespec delay;
// 打开文件,如果不存在则创建
if ((fd = open(FILE_PATH, O_WRONLY | O_CREAT | O_APPEND, S_IRUSR | S_IWUSR)) == -1) {
perror("Failed to open file");
return 1;
}
// 设置延迟时间
delay.tv_sec = 1; // 每隔1秒
delay.tv_nsec = 0;
while (true) {
// 写入数据到文件
ssize_t bytes_written = write(fd, DATA, strlen(DATA));
if (bytes_written == -1) {
perror("Error writing to file");
break;
}
// 等待1秒
nanosleep(&delay, NULL);
}
// 关闭文件
close(fd);
printf("Data has been written continuously for some time.\n");
return 0;
}
```
在这个程序中,我们首先打开文件并设置好权限,然后进入一个无限循环,在每次循环中写入数据并等待1秒,直到程序被强制停止。
阅读全文