linux – 命名管道和fortran的麻烦
我尝试通过命名管道在一些fortran进程之间建立通信.然而,考虑到一个非常简单的玩具示例,我遇到了麻烦.这是我的代码:
program testfifo implicit none integer status write(*,*) "hello" call flush() open(unit=11,file="MyNamedPipe",action='write',form ='unformatted' $,iostat=status); close(11) write(*,*) "by" call flush() return end program testfifo 如果我用普通文件运行它,它可以工作: /fortran > rm -f MyNamedPipe && touch MyNamedPipe /fortran > gfortran -o testfifo testfifo.f /fortran > ./testfifo hello by 然而,运行fifo我的程序卡住了: /fortran > rm -f MyNamedPipe && mkfifo MyNamedPipe /fortran > gfortran -o testfifo testfifo.f /fortran > ./testfifo hello ^C 我没有收到任何错误消息.另外,我尝试改变格式化的开放语句< - >未格式化,错误处理等错误= 100,但它没有帮助.以下是我的一些系统统计信息: Linux lin45 3.2.0-4-amd64#1 SMP Debian 3.2.54-2 x86_64 GNU / Linux 我正在网上搜索这个问题的解决方案已经有一段时间了.如果有人可以帮助我,我会很高兴.此外,如果有人能够毫无困难地运行代码,我会感兴趣,如果这可能是由于任何系统/编译器问题.谢谢. 注意:我真正感兴趣的程序需要在#n进程之间进行通信,因此,我认为,我不能使用普通管道.此外,已经有一个使用管道设置的代码版本.但是,它只能在Mac上运行.我的任务是在Linux下运行它. Mac规格如下: Mac OS X 10.7.5 解决方法
这适合我.不知何故,action =“write”是有问题的.
program testfifo implicit none integer status write(*,*) "hello" call flush() open(unit=11,access='stream' & &,form ='unformatted',iostat=status) write(11) status print *,status close(11) write(*,*) "by" call flush() end program testfifo 因为http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30162,我使用了流访问 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- linux – 在RAM中增加OS缓存,导致高系统CPU使用率
- 如何确定我的Linux机箱是否已被渗透?
- scp和rsync不起作用(ssh工作)
- linux – 是否可以在/ etc / motd中放置命令?
- linux – 无法运行与libc链接的可执行文件
- LINUX实操:FreeFileSync:在 Ubuntu 中对比及同步文件
- Linux bash. for loop和function,用于添加数字
- linux – 如何检查libvirt上可以添加多少ram到guest虚拟机操
- linux – 如果用户从samba共享中删除文件,如何记录
- linux – 使用30GB数据备份Web服务器的最佳方法是什么?