导航:首页 > 编程语言 > 编程方法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