linux编程-文件操作(4)
2014-12-18 01:01
246 查看
文件描述符号拷贝dup
一、接口说明
#include <unistd.h>
int dup(int oldfd);
int dup2(int oldfd, int newfd);
#define _GNU_SOURCE /* See feature_test_macros(7) */
#include <fcntl.h> /*Obtain O_* constant definitions */
#include <unistd.h>
int dup3(int oldfd, int newfd, int flags);
非原子操作
int fdDup3 = 101;
Close(fdDup3)
fdTmp = fcntl(fdLog, F_DUPFD, fdDup3);
备注:
Dup在拷贝文件描述符时,会清除close-on-exec
api接口说明可通过man dup查询
二、代码案例
intfdDup1 = dup(fdLog);
if(fdDup1 != -1)
{
ReadFile(fdDup1);
close(fdDup1);
}
intfdDup2 = 100;
intfdTmp = dup2(fdLog, fdDup2);
if(fdTmp != fdDup2)
{
printf("Copyfd to 100 failed");
}
else
{
ReadFile(fdDup2);
close(fdDup2);
}
intfdDup3 = 101;
fdTmp= fcntl(fdLog, F_DUPFD, fdDup3);
if(fdTmp != fdDup3)
{
printf("Copyfd to 100 failed");
}
else
{
ReadFile(fdDup3);
close(fdDup3);
}
三、执行结果
一、接口说明
#include <unistd.h>
int dup(int oldfd);
int dup2(int oldfd, int newfd);
#define _GNU_SOURCE /* See feature_test_macros(7) */
#include <fcntl.h> /*Obtain O_* constant definitions */
#include <unistd.h>
int dup3(int oldfd, int newfd, int flags);
非原子操作
int fdDup3 = 101;
Close(fdDup3)
fdTmp = fcntl(fdLog, F_DUPFD, fdDup3);
备注:
Dup在拷贝文件描述符时,会清除close-on-exec
api接口说明可通过man dup查询
二、代码案例
intfdDup1 = dup(fdLog);
if(fdDup1 != -1)
{
ReadFile(fdDup1);
close(fdDup1);
}
intfdDup2 = 100;
intfdTmp = dup2(fdLog, fdDup2);
if(fdTmp != fdDup2)
{
printf("Copyfd to 100 failed");
}
else
{
ReadFile(fdDup2);
close(fdDup2);
}
intfdDup3 = 101;
fdTmp= fcntl(fdLog, F_DUPFD, fdDup3);
if(fdTmp != fdDup3)
{
printf("Copyfd to 100 failed");
}
else
{
ReadFile(fdDup3);
close(fdDup3);
}
三、执行结果
相关文章推荐
- Linux下C语言编程--文件的操作
- Linux下C编程入门笔记——文件IO操作
- linux系统编程之文件与IO(八):文件描述符相关操作-dup,dup2,fcntl
- Linux 系统编程学习-文件操作-DIR等结构体
- linux-C编程-文件操作
- Linux下C编程入门笔记——文件IO操作(一)
- linux操作系统下c语言编程入门--文件操作
- linux系统编程之文件与I/O(三):目录的操作
- linux应用编程:文件操作
- linux 基础编程:文件操作总结
- linux下c语言编程:文件操作
- Linux环境编程--文件基本操作
- Linux下C语言编程--文件的操作
- linux系统编程:文件操作
- linux下c语言编程:文件操作
- GNU_linux编程指南读书笔记3 --文件和目录操作
- Linux脚本(shell)编程(三) 文件操作
- Linux基础编程-文件操作open,lseek,read,write,close
- Linux基础编程-文件操作open,lseek,read,write,close
- Linux基础编程-文件操作open,lseek,read,write,close