使用输出类型文件应该注意的问题(1)
我在这里和大家一起讨论的是输出型的文件的处理。
在RPG语言里,F表里面的类型是O. 这种文件只可以写,不能读也不能更新。
磁盘是一种所谓“BLOCK"设备。这种设备读后或者写都是一块一快进行的,不是一个字节,一个字节进行的。
如果你只读一个字节,那么操作系统照样读含有你要读的那一块进系统缓冲区,然后挑那个你要的字节返回给你。
你再读下一个字节,那操作系统就不读硬盘了,从缓冲区返回下一个字节给你,直到缓冲区被读完了,在到硬盘里去找。
如果你写一个字节呢,操作系统就把你的字节方在缓冲区,等哪个缓冲区满了,或者关闭那个文件,这才把那一块缓冲区的内容写进磁盘。
如果你们注意到从网上下载数据到硬盘,就可以发现那银盘忙的时间少,空闲的时间多。
忙的时间就是往硬盘写数据的时间,空闲的时间就是下载程序往缓冲区写数据的时间。
磁盘通常比英特网快得多,那硬盘灯就暗多亮少。
言归正传。如果你在高级语言里执行了一个WRITE操作,千万别指望操作系统立马就把你的数据写进磁盘。
操作系统要等那缓冲区满了才会真正执行写的操作。
写在缓冲区里的数据,只有本作业可以看到,其他作业是看不到的。这样在多用户环境就有可能找造成一些问题。
明天我有空会详介绍给大家各种可能发生的问题和相应的对策。
[ 本帖最后由 franliu 于 2009-11-24 09:38 编辑 ]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我的邮箱 giggsone@gmail.com
非常感谢
可以看IBM的<<DATABASE GUILD>>
网上可以下载的。
中文版的有没有我不清楚。如果你可以看英文版的我可以发给你一份PDF版的。
告诉我你的E-MAIL就行了。
[ 本帖最后由 franliu 于 2009-11-24 09:34 编辑 ]
LZ可以发一些IBM的资料给我看看么?我有太多东西不知道了。