導航:首頁 > 編程語言 > 編程方法dup函數的使用

編程方法dup函數的使用

發布時間:2022-04-22 04:26:54

㈠ C語言中p和p2函數的不同和使用

p返回的新文件描述符一定是當前可以用描述符中的最小值。下面先打開一個文件來看下文件描述符,為保證測試成功,創建一個測試文件log.txt。

1
2
3
4
5
6
7
8
9
10
11
12
#include <fcntl.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
int fd;
fd = open("./log.txt", O_RDWR);

printf("%d\n", fd);

return 0;
}
上面的代碼用讀寫打開了log.txt這個文件,編譯上面的代碼然後執行,執行成功的話,應當是輸出3,因為0,1,2分別被標准輸入,標准輸出,標准錯誤輸出佔用了。使用p復制這個文件描述符,並嘗試移動fd偏移量:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
int fd, fd;

fd = open("./log.txt", O_RDWR);
//復制fd
fd = p(fd);

//輸出fd,應當為4
printf("%d\n", fd);

//列印出fd和fd的偏移量,都為0
printf("%d\n", (int)lseek(fd, 0, SEEK_CUR));
printf("%d\n", (int)lseek(fd, 0, SEEK_CUR));

//將fd的偏移量+3
lseek(fd, 3, SEEK_SET);

//列印出fd和fd的偏移量,都為3
printf("%d\n", (int)lseek(fd, 0, SEEK_CUR));
printf("%d\n", (int)lseek(fd, 0, SEEK_CUR));

return 0;
}
編譯執行上例代碼可以發現當移動fd的偏移量時,fd的偏移量也發生了變化。往文件里寫入內容試試,先把log.txt內容清空。

㈡ c語言的 p函數

你可以這樣做,但是沒有必要。
因為 fd是指向你的打開的文件表項(每個打開的文件都有這么一表項),存在多個fd指向一個表項的情況(如你調用p2,p,fcntl),系統採用引用計數的方法,如你有兩個fd指向一個文件表現,則計數為2,這樣你每次調用close,引用計數減1,減到0是,銷毀文件表項以及文件的vnode(inode結構)。即便你不手動關閉文件,進程結束時,系統會自動關閉你打開的文件,所以,試情況而定。有時你可以不必自己close文件。

㈢ 8086匯編中DUP用法

db 21 p('year',0,'summ',0,'ne',0,?,?,0)中間加上逗號就可以了英文狀態下輸入的才可以

㈣ 匯編語言 數據偽指令 DUP用法

10 p(1)重復定義了10個字元素,初始值為1,佔用10*2=20個位元組。

5 p(?)重復定義了5個字元素(其初始值實際為0),佔用5*2=10個位元組

因此總共佔用30個位元組。

具體分析:在匯編定義變數的時候會用到p,變數名 、類型 、初值表,Dup用於把一個相同值賦值若干次,重復次數 p(數據項),具體比如s db 30 p(0),定義一個位元組型變數,該變數佔用30個位元組,所有位元組被初始化成0,equ是一個代碼替換指令。

(4)編程方法p函數的使用擴展閱讀

在匯編語言中,用助記符代替機器指令的操作碼,用地址符號或標號代替指令或操作數的地址。在不同的設備中,匯編語言對應著不同的機器語言指令集,通過匯編過程轉換成機器指令。特定的匯編語言和特定的機器語言指令集是一一對應的,不同平台之間不可直接移植。

比如:用「ADD」代表數字邏輯上的加減,「 MOV」代表數據傳遞等等,通過這種方法,人們很容易去閱讀已經完成的程序或者理解程序正在執行的功能,對現有程序的bug修復以及運營維護都變得更加簡單方便。

㈤ p2函數的問題

標准輸入輸出都被p2重定向了(到管道里了),printf不會有輸出。
不過你如果單步的話,應該可以看到rc里有值。

linux下C語言編程,管道,p,fork,疑問的是,為什麼連用那麼多close必須要close 代碼如下

文件描述符0,1,2分別表示標准輸入標准輸出,標准錯誤輸出, 所以在子進程里close(1)是關閉了標准輸出, 然後用p(fda[1]);此時未用的最小文件描述符就是1(被關閉);這里關閉fda[0]就是為了說明在子進程是管道的寫端(fda[0],不關閉是可以的為了保險起見關閉).然後子進程退出會調用系統程序ls,於是當前的文件目錄就被發送到管道中.父進程同理, 就是將標准輸出作為管道的讀端,它讀到的是子進程ls後的內容,對文件計數,

㈦ p函數干什麼用的呢是復制一個文件描述符嗎

其實就是這樣:
p()或者p2()主要是將某個特定的文件描述字輸出輸出的重定向!
他們保證將復制的文件描述字到當前未打開的最小描述字!事例代碼int fd;if(argc!=2){err_quit("Usage :filename");}if((fd=creat(argv[1],0644))

㈧ unix pipe() 和p2()的使用方法和原理

pipe(),父子進程之間通訊工具。pipe有讀寫兩端,用int表示。0-read, 1-write.一端進程將數據寫入write內,另一進程由read段讀出。使用參數為一個int數組,共兩個元素,用以表示讀寫兩端的狀態。
close(),用於關閉清空pipe某端,參數為表示pipe埠數組二元素之一。
p2(),用於redirection, 將pipe某端與標准i/o相連,即將standout information 寫入或者pipe內容被standin獨出。如p2(data[1], STDOUT_FINENO).是進程與外界相連的一個工具。

㈨ p()是什麼意思

DUP表示數據重復定義,也就是復制操作數。?表示所定義的變數未指定初值,就是說定義的單元不存新數據。(而是為以後使用做准備,即保留這些單元)

(9)編程方法p函數的使用擴展閱讀:

1、DUP函數功能:數據定義偽指令,它可以按照給定的次數來復制某個(某些)操作數,可以避免多次鍵入同樣一個數據。也就是定義重復的位元組、字、雙字、結構等內存緩沖區。

2、DUP函數返回值:

成功:p函數返回當前系統可用的最小整數值。

失敗:均返回-1,並設置errno。

注意:通過p和p2創建的文件描述符並不繼承原文件描述符的屬性。比如close-on-exec和non-blocking。

3、舉例:

buf1 db 100 p(?)---------開辟100個位元組的內存區

buf2 dw 200 p(?)--------開辟200個字的內存區

buf3 dd 300 p(?)--------開辟300個雙字的內存區

㈩ VLOODUP函數操作

函數名稱:VLOOKUP

主要功能:在數據表的首列查找指定的數值,並由此返回數據表當前行中指定列處的數值。

使用格式:VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

參數說明:Lookup_value代表需要查找的數值;Table_array代表需要在其中查找數據的單元格區域;Col_index_num為在table_array區域中待返回的匹配值的列序號(當Col_index_num為2時,返回table_array第2列中的數值,為3時,返回第3列的值……);Range_lookup為一邏輯值,如果為TRUE或省略,則返回近似匹配值,也就是說,如果找不到精確匹配值,則返回小於lookup_value的最大數值;如果為FALSE,則返回精確匹配值,如果找不到,則返回錯誤值#N/A。

應用舉例:參見圖7,我們在D65單元格中輸入公式:=VLOOKUP(B65,B2:D63,3,FALSE),確認後,只要在B65單元格中輸入一個學生的姓名(如丁48),D65單元格中即刻顯示出該學生的語言成績。

特別提醒:Lookup_value參見必須在Table_array區域的首列中;如果忽略Range_lookup參數,則Table_array的首列必須進行排序;在此函數的向導中,有關Range_lookup參數的用法是錯誤的。

閱讀全文

與編程方法dup函數的使用相關的資料

熱點內容
數控銑床法蘭克子程序編程 瀏覽:173
linux打包命令targz 瀏覽:996
抖音app是哪個 瀏覽:407
蘋果app怎麼上架 瀏覽:255
NA伺服器地址 瀏覽:427
我的世界如何初始化伺服器 瀏覽:97
哪個手機app天氣預報最准 瀏覽:752
怎樣把視頻壓縮至25m 瀏覽:570
vivox27文件夾怎麼改變 瀏覽:727
新手玩狼人殺用什麼app 瀏覽:615
pdf在線查看 瀏覽:954
安卓tv90如何關閉後台 瀏覽:683
php讀取word亂碼 瀏覽:755
minicom源碼 瀏覽:1001
海爾冷櫃壓縮機 瀏覽:416
聯通伺服器如何調試信號 瀏覽:136
stata新命令 瀏覽:941
單調棧演算法python 瀏覽:606
微信解壓游戲怎麼下載 瀏覽:962
忍三伺服器不同如何登上賬號 瀏覽:822