- 論壇徽章:
- 0
|
本帖最后由 centos_71 于 2015-02-02 20:43 編輯
dup函數(shù)只有一個參數(shù),也就是輸入一個fd,可是沒有另外一個參數(shù)說,要把這個fd復制給誰?
下面這個小程序,調(diào)用fd的結果是,打開的一個文件fd被復制到了標準輸出,以至于execl調(diào)用的打印內(nèi)容,被重定向到了文件當中。
- #include <stdio.h>
- #include <stdlib.h>
- #include <sys/types.h>
- #include <unistd.h>
- #include <fcntl.h>
- #include <sys/stat.h>
- int main(void){
- int filedes;
- if((filedes=open("dd.txt",O_WRONLY|O_CREAT,S_IRUSR|S_IWUSR))<0)
- fprintf(stderr,"%s ","open file error");
- close(1);
- dup(filedes);
- close(filedes);
- execlp("ls","-l",(char * )0);
- return 0;
- }
復制代碼 所以看起來dup程序就是要復制一個fd到stdout。是這樣的嗎,如果我要dup到stdout以外的fd怎么辦呢? |
|