|
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混合编程是不是比较容易解决数据互传的问题…… |
|