① 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自學書籍