dup和dup2函式的小理解
int dup(int fd);
int dup2(int fd, int fd 2);
dup的引數是一個檔案描述符,指向一個檔案(stdin,stdout等也是特殊的檔案)。返回的也是一個檔案描述符(當前還未被使用的最小的描述符編號),這個描述符和fd指向同一個檔案。也就是說,當你當你用write向返回的檔案描述符寫入時,也相當於向fd指向的檔案寫入。
dup2多了一個引數,這個引數讓我們可以不僅僅用還未被使用的描述符,而是可以任意指定描述符,這個函式相當於close(fd2); dup(fd);
(一般來說fd2是標準輸入輸出,所以close後是未使用的最小描述符)。此時, fd2與fd指向同一個檔案。
相關推薦
dup和dup2函式的小理解
int dup(int fd); int dup2(int fd, int fd 2); dup的引數是一個檔案描述符,指向一個檔案(stdin,stdout等也是特殊的檔案)。返回的也是一個檔案描述符(當前還未被使用的最小的描述符編號),這個描述符和fd指向同一個檔案。也就
dup和dup2函式簡單使用
dup函式 標頭檔案和函式原型: #include <unistd.h> int dup(int oldfd); dup函式是用來開啟一個新的檔案描述符,指向和oldfd同一個檔案,共享檔案偏移量和檔案狀態。 共享偏移量程式碼: int main(int argc, char const
淺析dup()和dup2()函式
前言 在linux下,一切皆檔案。當檔案被開啟時,會返回檔案描述符用於操作該檔案,從shell中執行一個程序,預設會有3個檔案描述符存在(0、1、2);)0表示標準輸入,1表示標準輸出,2表示標準錯誤。一個程序當前有哪些開啟的檔案描述符可以通過/proc/
linux之dup和dup2函式解析
系統呼叫dup和dup2能夠複製檔案描述符。dup返回新的檔案檔案描述符(沒有用的檔案描述符最小的編號)。dup2可以讓使用者指定返回的檔案描述符的值,如果需要,則首先接近newfd的值,他通常用來重新開啟或者重定向一個檔案描述符。 在linux下,通過open開啟以檔案後
函式dup和dup2
函式原型: #include<unistd.h> int dup(int oldfd); 返回值:若成功,返回新的檔案描述符;若出錯,返回-1
dup和dup2之理解
檔案描述符:
dup和dup2檔案描述符相關函式
#include <unistd.h> #include <sys/stat.h> #include <fcntl.h> #include <stdio.h> #include <stdlib.h> #include <string.h>
【轉】Linux系統編程---dup和dup2詳解
系統 強調 操作 attach bsp ads 正常的 註意 tdi 正常的文件描述符: 在linux下,通過open打開以文件後,會返回一個文件描述符,文件描述符會指向一個文件表,文件表中的節點指針會指向節點表。看下圖: 打開文件的內核數據結構 dup和dup2兩
使用dup和dup2重定向和還原
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
利用dup和dup2在linux中實現簡單的重定向輸出
Linux中檔案描述符 0代表標準輸入檔案stdin、1代表標準輸出檔案stdout、2代表標準錯誤輸出檔案stderr,STDOUT_FILENO是一個巨集 為1 #include<stdio.h> #include<unistd.h> #include<s
glOrtho()函式和glViewport()函式的理解
glOrtho是建立一個正交平行的視景體。 一般用於物體不會因為離螢幕的遠近而產生大小的變換的情況。比如,常用的工程中的製圖等。需要比較精確的顯示。 而作為它的對立情況, glFrustum則產生一個透視投影。這是一種模擬真是生活中,人們視野觀測物體的真實情況。例如:觀
QT事件 --接受和忽略函式的理解
//!!! Qt5 // ---------- custombutton.h ---------- // class CustomButton : public QPushButton { Q_OBJECT public: CustomButton(QWidge
php strlen()和str_replace函式小例項
strlen()函式返回字串的長度,以字元計算、 <?php echo strlen('Hello world!'); //..12 ?> str_replace()函式替換字串中的一些字元(區分大小寫) 把字串 “
Linux 系統呼叫 dup()和dup2()
1、dup() dup()系統呼叫會建立檔案描述符的一個拷貝: (1)新生成的檔案描述符是程序中最小的未使用的檔案描述符,0 、1 、2對應標準輸入、標準輸出、標準錯誤輸出 (2)如果拷貝成功,那麼原始的和拷貝的檔案描述符可能會交叉使用 (3)兩者都指向同一個開啟的檔案描述符,因此共
淺談dup和dup2的用法
https://blog.csdn.net/u012058778/article/details/78705536一、dup和dup2函式 這兩個函式都可以來複制一個現有的檔案描述符,他們的宣告如下: #include <unistd.h> int dup(i
python中strip() 函式和 split() 函式的理解
一直以來都分不清楚strip和split的功能,實際上strip是刪除的意思;而split則是分割的意思。因此也表示了這兩個功能是完全不一樣的,strip可以刪除字串的某些字元,而split則是根據規
C++中對hash_map自定義雜湊函式和比較函式的理解
#include "stdafx.h" #include <iostream> #include <hash_map> #include <vector>using std::vector; using stdext::hash_map;class hash_wchar_
js的四捨五入實現和parseInt 函式小bug
js沒有現成的四捨五入函式可用,程式碼如下 /**四捨五入*/function forDight(_num,_x){ var n = 1; for(var i=0;i<_x;i++){ n=n*10; } return Math.round(_num*n)/
【APUE學習筆記】dup和dup2用法
在瞭解dup用法之前,需要對linux的檔案節點有一個認識。 核心有3個數據結構來表示程序開啟的檔案,dup是系統提供的一個API可以直接操作這三個資料結構之間的關係。 (1)每個程序在程序表當中都有一個記錄項,記錄項中包含一張表格,記錄了所有當前程序開啟的檔案,可以將其想
linux—dup和dup2重定向檔案描述符
【dup】 利用函式dup,我們可以複製一個描述符。傳給該函式一個既有的描述符,它就會返回一 個新的現有的最小的未被使用的描述符,這個新的描述符是傳給它的描述符的拷貝。這意味著,這兩個描述符共享同一