当前位置:  技术问答>linux和unix

dup重定向问题

    来源: 互联网  发布时间:2016-07-13

    本文导语:  sub.c #include  #include  int main() {         int i = 0;         char szBuf[16];         while(i++ >= 0)         {                 sleep(1);                 snprintf(szBuf, sizeof(szBuf), "i = %dn", i);       ...

sub.c

#include 
#include 

int main()
{
        int i = 0;
        char szBuf[16];

        while(i++ >= 0)
        {
                sleep(1);
                snprintf(szBuf, sizeof(szBuf), "i = %dn", i);
                write(1, szBuf, strlen(szBuf));
                fsync(1);
        }

        return 0;
}

gcc -o a sub.c

file: fat.c

#include 
#include 
#include 
#include 

int main()
{
        int iFd;
        int iPid;

        iPid = fork();
        if (iPid == 0)
        {
                iFd = open("a.txt", O_CREAT, 0777);
                close(0);
                close(1);
                close(2);
                dup(iFd);
                dup(iFd);
                dup(iFd);

                execl("./a", "a", NULL);
        }
        else
        {
                while(1)
                {
                        sleep(1);
                }
        }

        return 0;
}


gcc -o b fat.c 

[root@localhost test]# ./b &
[1] 11718
[root@localhost test]# ll
total 44
-rwxrwxrwx 1 root root 5055 Nov  2 04:51 a
-rwxrwxrwx 1 root root    0 Nov  2 04:46 a.txt
-rwxrwxrwx 1 root root 5254 Nov  2 04:53 b
-rw-rw-rw- 1 root root  356 Nov  2 04:49 fat.c
-rw-rw-rw- 1 root root  227 Nov  2 04:44 sub.c
[root@localhost test]# ll
total 44
-rwxrwxrwx 1 root root 5055 Nov  2 04:51 a
-rwxrwxrwx 1 root root    0 Nov  2 04:46 a.txt
-rwxrwxrwx 1 root root 5254 Nov  2 04:53 b
-rw-rw-rw- 1 root root  356 Nov  2 04:49 fat.c
-rw-rw-rw- 1 root root  227 Nov  2 04:44 sub.c
[root@localhost test]# 

为什么b.txt没有内容?

|
iFd = open("a.txt", O_CREAT|O_RDWR, S_IRUSR |
 20                                 S_IWUSR |
 21                                 S_IRGRP |
 22                         S_IWGRP |
 23                     S_IROTH |
 24                         S_IWOTH);

open的时候,flag可读可写。

|
查找了资料,仔细思考了半小时,无果,呵呵。会继续思考的。

|
顶下,没看明白

|
先顶一下lz。  一起想。。

|
mark 一下, 明天早晨来,呵呵。
200 分啊。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 哪位大侠帮忙写一个函数dup1()实现dup2()的功能!或者直接提供dup2()的源码??
  • APUE初学者:请问dup,dup2函数可以用来干什么?有什么好处?
  • UNIX环境下,如何实现dup2函数,不允许调用fcntl?
  • Linux备份工具 Deja Dup
  • 请问 dup(fd1, fd2) 和 fd2=fd1的区别
  • 哪位老大能讲一下lseek函数和dup与dup2函数是干什么用的,最好有实例
  • Unix高级环境编程一有关dup2的习题,求解释!!!!
  • 调试dup与pipe结合的简单程序
  • dup2后的奇异现象
  • dup2(fd[0],STDIN_FILENO)!=STDIN_FILENO疑问
  • 在编写一个同dup(2)功能相同的函数,要求不调用fcntl函数并且要有正确的出错处理
  • 利用fork 与 dup2 执行 系统命令, 别的命令都可以获取执行结果,就fdisk 命令不可以. execve("/sbin/fdisk",args,NULL) , args 命令参数.
  • 急: 代码那里写错了??dup2 execve写的执行命令的程序, 重定向标准输入、输出、标准错误,无法获取到fdisk 的命令输出。别的命令都可以。附代码


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3