欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


如何使用Notepad2记事本
苹果电脑更新BootCamp时提示:无法找到msi源文件怎么办?
MathType公式编辑器怎么输入空格
教你为极路由升级固件
怎么看电脑用独立显卡还是集成显卡?
MathType公式编辑器改变上下标大小
路由器如何实现远程配置呢
如何使用WIN+R快速启动程序
缺少mfcuix.hlp,怎么下载mfcuix.hlp文件
如何在文件夹右键发送到添加文件
如何使用系统调用
【 来源:网络 】【 点击:1 】 【 发布时间:2017_03_03 08:59:59 】

   下面通过一个简单的例子来说明在用户程序中是如何使用系统调用的。例如,要写一个简单的程序,用于从一个文件中读出数据,再将该数据复制到另一文件中。为此,首先须输入该程序的输入文件名和输出文件名。文件名可用多种方式指定,一种方式是由程序询问用户两个文件的名字。

  在交互式系统中,该方式要使用一系列的系统调用,先在屏幕上打印出一系列的提示信息,然后从键盘终端读入定义两个义件名的字符串。一旦获得两个文件名后,程序又必须利用系统凋用open去打开输入文件,并用系统凋用creat去创建指定的输出文件;在执行叩⑶系统调用时,又可能发生错误。

  例如,程序试图去打开一个不存在的文件;或者该文件虽然存在,但并不允许被访问等。此时,程序又须利用一系列系统调用去显示出错信息,继而再利用一个系统凋用去实现程序的异常终止。类似地,在执行系统调用creat时,同样可能出现错误。例如,系统中存在与输出文件同名的另一文件,这时又须利用一系统调用来结束程序;或者利用一个系统调用来删除巳存在的那个同名文件,然后,再利用creat來创建输出文件。

  在打开输入文件和创建输出文件都获得成功后,还须利用_请内存的系统调用alloc根据文件的大小申请一个缓冲区。成功后,再利用read系统凋用从输入文件中把数据读到缓冲区内,读完后,再用系统调用close去关闭输入文件。然后利用write系统调用,把缓冲区内的数据写到输出文件中。在读或写操作中,也都可能需要回送各种出错信息。

  比如,在输入时可能发现已到达文件末尾(指定的字符数尚未读够),或者,在读过程中发现硬件故障(如奇、偶错);在写操作中可能遇见各种与输出设备类型有关的错误,比如,已无磁盘空间,打印机缺纸等。在将整个文件复制完后,程序又须凋用close去关闭输出文件,并向控制台回送一条消息以提示复制完毕。最后,再利用系统调用exit使程序正常结朿。

  通过这个例子可以看出,一个用户程序将频繁地利用各种系统调用以取得OS所提供的各种服务。

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号
淳安分站 淳安分站