lseek函数调用形式c语言(c语言如何将printf产生的数据写到txt文件中)

本文目录
c语言如何将printf产生的数据写到txt文件中
有以下三种方式可以做到:
1 使用重定向函数freopen将标准输出重定向到对应的txt文件。
其使用方法为,在所有的系统输出前,调用
stdout = freopen("out.txt", "w", stdout);
out.txt即所要写入的txt文件名。
2 在执行时处理。
编译最终生成的为可执行文件,运行也是运行这个文件。
在运行文件时,可以通过重定向符号,将输出重定向到其它文件。
如果生成的可执行文件为my.exe,那么在命令行调用
my.exe 》 out.txt
即可将my.exe的输出写入到out.txt中。
3 以上两种方法都是把所有的标准输出,包括printf, puts, putchar等,均输入到对应文件中。
如果要仅输出printf的结果,可以先打开文件,然后修改代码,把每个printf的调用修改对应的写文件函数。即printf(xxxx);修改为fprintf(fp, xxxxx);的形式。
其中fp为打开的文件指针。
C语言中dup和dup2函数的不同和使用
dup返回的新文件描述符一定是当前可以用描述符中的最小值。下面先打开一个文件来看下文件描述符,为保证测试成功,创建一个测试文件log.txt。
1
2
3
4
5
6
7
8
9
10
11
12
#include 《fcntl.h》
#include 《stdio.h》
int main(int argc, char *argv)
{
int fd;
fd = open("./log.txt", O_RDWR);
printf("%d\n", fd);
return 0;
}
上面的代码用读写打开了log.txt这个文件,编译上面的代码然后执行,执行成功的话,应当是输出3,因为0,1,2分别被标准输入,标准输出,标准错误输出占用了。使用dup复制这个文件描述符,并尝试移动fd偏移量:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include 《unistd.h》
#include 《fcntl.h》
#include 《stdio.h》
int main(int argc, char *argv)
{
int fd, copyfd;
fd = open("./log.txt", O_RDWR);
//复制fd
copyfd = dup(fd);
//输出copyfd,应当为4
printf("%d\n", copyfd);
//打印出fd和copyfd的偏移量,都为0
printf("%d\n", (int)lseek(fd, 0, SEEK_CUR));
printf("%d\n", (int)lseek(copyfd, 0, SEEK_CUR));
//将fd的偏移量+3
lseek(fd, 3, SEEK_SET);
//打印出fd和copyfd的偏移量,都为3
printf("%d\n", (int)lseek(fd, 0, SEEK_CUR));
printf("%d\n", (int)lseek(copyfd, 0, SEEK_CUR));
return 0;
}
编译执行上例代码可以发现当移动fd的偏移量时,copyfd的偏移量也发生了变化。往文件里写入内容试试,先把log.txt内容清空。

更多文章:
corrcoef函数(为什么matlab里corrcoef函数只能产生2×2的系数矩阵 求高手帮忙)
2026年1月20日 21:30
excel表格加减乘除函数公式(EXCEL中加法减法乘法除法怎么算啊!)
2025年11月13日 20:30
js字符串转date类型(js怎么把string转换成date)
2025年8月11日 06:00
onclick与click的区别(onclick和click的区别)
2025年5月31日 04:00
oracle触发器怎么设置(oracle apex 怎么设置触发器)
2025年8月13日 19:30
兼容织梦系统cms系统(什么是CMS系统目前流行的CMS系统主要有哪些各有哪些优缺点如何选择CMS系统拜托各位大神)
2025年10月5日 07:00
phpcmsv9最新利用工具(WampServer是一款WAMP软件包,该软件包由哪些软件整合而成)
2026年4月13日 18:15
写出在powerpoint中创建演示(阐述在PowerPoint中创建演示文稿的方法(至少三种))
2026年5月31日 02:30
word如何使用正则匹配(c#word查找用如何用正则表达式模糊匹配)
2025年6月14日 21:00
swift code 中国工商银行(中国工商银行的Swift code(银行国际代码)是什么)
2025年9月1日 20:45










