① linux p2()函数怎么不能重定向标准输出(STDOUT)到文件
我没怎么改,编译运行好像正常?
#include<stdio.h>
#include<unistd.h>
int main(int argc,char **argv)
{
FILE * fd;
fd = fopen("log.txt","a+");
p2(fileno(fd), 1);
p2(fileno(fd), 2);
int i=0;
for(i=0;i<5;i++)
{
printf("output to STDOUT!\n");
fprintf(stderr,"output to STDERR!\n");
sleep(2);
}
return 0;
}
结果:
[ksl@myhost ~]$ cat log.txt
output to STDERR!
output to STDERR!
output to STDERR!
output to STDERR!
output to STDERR!
output to STDOUT!
output to STDOUT!
output to STDOUT!
output to STDOUT!
output to STDOUT!
先输出了stderr的原因是,在sleep之后不会立刻输出,而是等到进程要关闭的时候,所以之前每次都会先输出STDERR,等到进程结束的时候才把stdout的内容给刷出来。我这边显示是这样的。
② linux下如何将,控制台输出的所有内容,全部输出到一个文本文件
command > filename 把标复准输出制重定向到一个新文件中
command >> filename 把标准输出重定向到一个文件中(追加)
command 1 > fielname 把标准输出重定向到一个文件中
command > filename 2>&1 把标准输出和标准错误一起重定向到一个文件中
command 2 > filename 把标准错误重定向到一个文件中
command 2 >> filename 把标准输出重定向到一个文件中(追加)
command >> filename 2>&1 把标准输出和标准错误一起重定向到一个文件中(追加)
command filename2 把command命令以filename文件作为标准输入,以filename2文件作为标准输出
command &m 把标准输出重定向到文件描述符m中
③ Linux创建文件的几种方式
使用“>”创建空文件,且不输入文件内容;
使用ls命令创建空文件,且不输入文件内容;
若所创建的文件不存在,则创建该文件; 且不允许输入文件内容;
echo "选填" > isTester.ini
若文件不存在,则创建文件;
若文件存在,则覆盖文件;
若文件不存在,使用>>创建文件并追加内容;
若文件存在,使用>>追加文件内容;
使用vi或vim命令创建文件并编辑文件
④ C语言怎样将结果输出到文件中
第一种
#define printf(fmt,...) fprintf(openedfile,fmt,__VA_ARGS__)
然后在你第一次用printf之前,打开文件就可以了。
第二中
在第一次printf之前
freopen("c:\\log.txt","w+",stdout)
⑤ linux怎么建文件
创建文件用touch 例如touch 1.txt 也可以直接vim编辑一个保存即可生成。《Linux就该这么学》不错的Linux自学书籍