
主題: [C&C++] [求助]關於execl函式的使用問題 [打印本頁]
發表人:
TC-E 時間: 2007-3-22 01:10 PM 主題: [求助]關於execl函式的使用問題
是這的,我想要用C++撰寫一段整合一些工具的程式
希望可以在Linux下執行,我找到了相關的函式execl
不過現在有個問題,就是原本在shell下可以用ls>>out.txt
的方式來將輸出資料導向文字檔內,但是execl我怎麼試
都無法做到這一點,其實我是希望利用execl呼叫我要的工具
並將其output寫入檔案以方便處理,不知道有哪位高手對此
比較有研究的,可以提供一些幫忙!
引用:
#include <unistd.h>
int main()
{
int ret;
ret = execl ("/bin/ls", "ls", "-1", (char *)0);
return 0;
}
發表人:
aleck 時間: 2007-3-22 10:58 PM
參考一下:
先 open 一個 file:
int fd = open("out.txt", O_RDWR|O_CREAT, 0666);
再將標準輸出 dup2 導向 fd:
dup2(fd, 1);
再執行 execl:
execl ("/bin/ls", "ls", "-1", (char *)0);
最後 close fd.
close(fd);
完成.
發表人:
TC-E 時間: 2007-3-28 12:16 PM
感謝,你的資訊可以解決我的問題唷!
引用:
#include <stdio.h>
#include <unistd.h>
int main()
{
FILE *fp;
int ret;
int id,fd;
fp=fopen("/home/user/00.txt","w");
id = dup(STDOUT_FILENO);
fd=fileno(fp);
dup2(fd, STDOUT_FILENO);
ret = execl ("/bin/ls", "ls", "-1", (char *)0);
dup2(id, STDOUT_FILENO);
fclose(fp);
return 0;
}
歡迎光臨 TWed2k (http://twed2k.org/) |
Powered by Discuz! 4.1.0 |