您现在的位置是:主页 > news > 衡水做网站服务商/100个经典创意营销方案
衡水做网站服务商/100个经典创意营销方案
admin2025/6/23 20:46:46【news】
简介衡水做网站服务商,100个经典创意营销方案,做设计网站,广东网络营销是什么dup操作 功能:复制文件描述符,重定向输入输出。 函数: #include <unistd.h> int dup(int oldfd); int dup2(int oldfd, int newfd);返回值:成功:dup函数返回当前系统可用的最小整数值。dup2函数返回第一个不小…
衡水做网站服务商,100个经典创意营销方案,做设计网站,广东网络营销是什么dup操作
功能:复制文件描述符,重定向输入输出。 函数:
#include <unistd.h>
int dup(int oldfd);
int dup2(int oldfd, int newfd);返回值:成功:dup函数返回当前系统可用的最小整数值。dup2函数返回第一个不小…
dup操作
功能:复制文件描述符,重定向输入输出。
函数:
#include <unistd.h>
int dup(int oldfd);
int dup2(int oldfd, int newfd);返回值:成功:dup函数返回当前系统可用的最小整数值。dup2函数返回第一个不小于newfd的整数值,分两种情况:1. 如果newfd已经打开,则先将其关闭,再复制文件描述符;2. 如果newfd等于oldfd,则dup2函数返回newfd,而不关闭它。失败:dup和dup2函数均返回-1,并设置errno。
复制文件描述符后,新旧文件描述符的特点:
1、使用dup或dup2复制文件描述符后,新文件描述符和旧文件描述符指向同一个文件,
管道或网络连接,共享文件的锁定、读写位置和各项权限。
2、当关闭新的文件描述符时,通过旧文件描述符仍可操作文件。
3、当关闭旧的文件描述符时,通过新的文件描述符仍可操作文件。
注意:
是共享文件偏移量和文件状态标志。
比如:其中一个使用lseek修改文件偏移量,另一个也会改变(读写等操作位置会改变)。
/* 例子:复制文件描述符,并向文件写数据 */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>void main()
{int oldfd,newfd;char *oldstr = "Write by oldfd.\n";char *newstr = "Write by newfd.\n";oldfd = open("test.txt", O_RDWR|O_CREAT, 0644);printf("oldfd = %d\n", oldfd);if(oldfd == -1) {printf("File open error\n");exit(-1); }/* 开始复制 */newfd = dup(oldfd);printf("newfd = %d\n", newfd);/* 使用oldfd写 */write(oldfd, oldstr, strlen(oldstr));if(close(oldfd) == -1) {printf("Close oldfd error.\n");exit(-1);}/* 使用newfd写 */write(newfd, newstr, strlen(newstr));if(close(newfd) == -1) {printf("Close newfd error.\n");exit(-1);}exit(0);
}
执行结果
终端输出:
oldfd = 3
newfd = 4查看test.txt:
Write by oldfd.
Write by newfd.
注意:新旧文件描述符是共享文件读写位置。