| 
 | 
5#
 
 
 楼主 |
发表于 2018-12-15 11:10:40
|
只看该作者
 
 
 
 
一样耗内存啊,我还以为shell的脚本有什么优化方法能减少内存消耗呢 
既然如此,用Fortran给自己写一些类似于sed,awk,head,tail之类的封装至成熟也是可行啊 
不过这个有点耗时间,对于一些小问题可能还是想用shell和Fortran混合编程了 
 
至于对于数据互传,看来我的表述方式有问题,让大佬你误解了 
我倒不是说能有什么大量数据的互传 
就是说有没有什么办法在用Shell和Fortran混合编写的时候, 
在内存里两种程序语言间互传数据,目前我是先把数据写到文件里再用另外一种语言去读 
这样的文件I/O据说速度很低,应该尽量避免啊,希望能有类似于shell里的管道的方式 
 
举个例子,比如某个文件里我希望读取最后一行第二个空格后的数据 
然后接下来这个数据要用于Fortran计算 
从文字处理上,直接用shell里的awk命令显然是最省心的 
可是问题是用shell读出来了,Fortran程序里却是没有这个数据的,哪怕作为字符串也没有 
那么有没有不用文件I/O的方法把这个数据或者字符串传递给Fortran程序呢 
当然,大佬你之前说的很对,这个功能可以自己写一个Fortran子程序在Fortran内部实现 
但是如果大量涉及到类似的东西的话,就除非自己写一个函数库了 
所以我就像问下,如果采用shell和Fortran混合编程结合优势的话有没有什么好办法实现这种数据互传 
 
另外,我不太了解C,是不是C的库里也有类似于sed,awk,head,tail等这样方便的文字处理函数 
如果有的话,是不是用C/Fortran混合编程是不是比较容易解决数据互传的问题…… |   
 
 
 
 |