1.dup和dup2作用都是用来复制一个文件的描述符。它们常用来重定向进程的stdin、stdout和stderr。这两个函数的 原形如下:#include int dup( int oldfd ); int dup2( int oldfd, int targetfd )利用函数dup,我们可以复制...
分类:
其他好文 时间:
2015-06-08 21:21:03
阅读次数:
166
01、什么是系统调用?
02、Linux系统调用之I/O操作(文件操作)
03、文件描述符的复制:dup(), dup2()
04、进程的介绍
05、Linux可执行文件结构与进程结构
06、多进程实现多任务(一):fork()
07、多进程实现多任务(二):vfork()
08、进程的控制:结束进程、等待进程结束
09、Linux特殊进程之僵尸进程
10、Linux特殊进程之孤儿进程
11、Linux特殊进程之守护进程
12、进程替换:exec函数族...
分类:
系统相关 时间:
2015-06-04 11:53:11
阅读次数:
277
dup() 和 dup2() 是两个非常有用的系统调用,都是用来复制一个文件的描述符,使新的文件描述符也标识旧的文件描述符所标识的文件。
这个过程类似于现实生活中的配钥匙,钥匙相当于文件描述符,锁相当于文件,本来一个钥匙开一把锁,相当于,一个文件描述符对应一个文件,现在,我们去配钥匙,通过旧的钥匙复制了一把新的钥匙,这样的话,旧的钥匙和新的钥匙都能开启这把锁。对比于
dup(), d...
分类:
系统相关 时间:
2015-05-20 18:34:04
阅读次数:
252
重定向一般在命令行里就是把原本输出到屏幕的数据转而输出到一个指定的文件当中。如1 $ pwd > workdir.txt此时workdir.txt内就存储了pwd命令的输出,当前所在的工作目录默认情况下printf总是把内容输出到进程的打开文件表述符编号为1的对应的文件中(0-标准输入,1-标准输出...
分类:
其他好文 时间:
2015-05-05 10:16:01
阅读次数:
113
进程间通信方式
传递数据的方式
1.pipe
必须是有亲缘关系的进程之间使用,平时用"ls | grep abc"等命令时用得就是这个,这个"|"我猜测是用了两种系统调用实现,一个是pipe(popen),一个是dup2,没有看过bash或sh的源码,只是猜测。
2.fifo
会在文件...
分类:
编程语言 时间:
2015-03-15 09:31:35
阅读次数:
265
摘要:本文主要讨论文件控制fcntl函数的基本应用.dup函数能够拷贝文件描写叙述符,而fcntl函数与dup函数有着异曲同工之妙.而且还有更加强大的功能,能够获取或设置已打开文件的性质,操作文件锁.1.fcntl函数 在《重定向编程 dup和dup2》一文中,介绍了dup和dup2两个函数,函数是...
分类:
其他好文 时间:
2015-02-11 14:09:28
阅读次数:
185
习题3.2的要求是不使用fcntl()而编写一个同dup2()功能相同的函数。直觉上是不断使用dup()直到返回指定的文件描述符。#include #include #define OPEN_MAX 63int my_dup2(int filedes,int filedes2);intmain(in...
分类:
系统相关 时间:
2015-02-08 23:09:46
阅读次数:
296
原文网址:http://www.cnblogs.com/fusae-blog/p/4256794.htmlAPUE第三章的最后面给出的函数,现在还用不着,所以,先留个名字,待到时候用着了再补上好了。dup和dup2函数:用来复制文件描述符的sync函数,fsync函数和fdatasync函数:大致的...
分类:
其他好文 时间:
2015-02-08 21:52:41
阅读次数:
202
下面两个函数都可用来复制一个现存的文件描述符:#includeint dup(int filedes);int dup2(int filedes,int filedes2); ...
分类:
其他好文 时间:
2015-02-06 13:02:26
阅读次数:
181
不论应用是如何部署的,我们都期望能扑捉到应用的错误日志, 解决思路: 自己写代码处理异常拦截,甚至直接在main函数中写异常拦截。 stderr重定向到某个文件里 使用 syscall.Dup2 第一种方法比较简单, 我们这里主要看后两种: 使用 stderr替换的代码: package main ...
分类:
其他好文 时间:
2015-02-06 10:55:15
阅读次数:
203