函式dup和dup2
函式原型:
#include<unistd.h>
int dup(int oldfd);
返回值:若成功,返回新的檔案描述符;若出錯,返回-1
引數:
- oldfd:要複製的檔案描述符
- dup呼叫成功:有兩個檔案描述符指向同一個檔案
- 返回值:取最小的且沒被佔用的檔案描述符
函式原型:
#include<unistd.h>
int dup2(int oldfd, int newfd);
返回值:若成功,返回新的檔案描述符;若出錯,返回-1
分析:
- 假設newfd已經指向一個檔案,首先斷開close與那個檔案的連結,newfd指向oldfd指向的檔案。(檔案描述符重定向)
- 假設呼叫函式dup2前oldfd與newfd指向同一個檔案,呼叫函式什麼也不做。
- newfd沒被佔用,newfd指向oldfd指向的檔案。
測試程式碼:
相關推薦
函式dup和dup2
函式原型: #include<unistd.h> int dup(int oldfd); 返回值:若成功,返回新的檔案描述符;若出錯,返回-1
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> #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
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
dup和dup2之理解
檔案描述符:
【APUE學習筆記】dup和dup2用法
在瞭解dup用法之前,需要對linux的檔案節點有一個認識。 核心有3個數據結構來表示程序開啟的檔案,dup是系統提供的一個API可以直接操作這三個資料結構之間的關係。 (1)每個程序在程序表當中都有一個記錄項,記錄項中包含一張表格,記錄了所有當前程序開啟的檔案,可以將其想
linux—dup和dup2重定向檔案描述符
【dup】 利用函式dup,我們可以複製一個描述符。傳給該函式一個既有的描述符,它就會返回一 個新的現有的最小的未被使用的描述符,這個新的描述符是傳給它的描述符的拷貝。這意味著,這兩個描述符共享同一
[linux]--使用dup和dup2重定向和還原
源於開發一個應用將資料寫的裝置節點中,但是裝置節點具有可變性,所以不在寫死,而是先確定好,開啟fd再將內容寫進去,最終寫入fd中的是一個開源程式,沒有辦法傳遞fd,不過它會把它要輸出的東西輸出到stdout中,開啟這個開源程式之前把stdout重定向到fd上就可以完成了對接。鋪墊完了,下面就
一個凸函式概率和加上另一個凸函式的左半部分,則其和函式凸起的左側的斜率總小於右側的斜率
設一個一維凸函式 g(x) g ( x ) g(x),另一個一維凸函式 f(x)
26、【支付模組開發】——支付寶回撥函式實現和查詢使用者訂單狀態介面編寫
####1、支付寶回撥函式實現 我們在除錯支付寶沙箱環境的時候,支護寶會有一個回撥函式,也就是在支付成功之後,可以呼叫我們支付之後需要執行的相關方法,從而達到資料庫的資料和我們的操作相統一。 首先我們先在本地將回調函式編寫好~ 在OrderController類中新建我們的支付寶回撥函式
Python_從零開始學習_(32) 函式引數和返回值
目錄 1. 函式引數和返回值的作用 2. 函式的返回值 進階 3. 函式的引數 進階 1. 函式引數和返回值的作用 函式根據 有沒有引數 以及 有沒有返回值 , 可以 相互相合, 一共有
影象函式 imagecreatetruecolor()和imagecreate()的異同點
共同點:這兩個函式都是用於建立畫布 區別: 1.不同的是建立畫布和為畫布填充顏色的流程不一樣; 用imagecreatetruecolor(int x,int y)建立的是一幅大小為 x和 y的影象(預設為黑色),如想改變背景顏色則需要為畫布分配顏色imagecolorallcollate(resour
Python3底層函式重寫和運算子過載
底層函式重寫 Python是支援重寫底層函式的,在列印物件時, &n