Unix爱好者家园最引人注目的广告位!
  欢迎 xiaolei 加入本站!
 免费注册  用户登陆  汇款方式  汇款确认  产品报价  联系我们  帮助中心

加入收藏
设为首页
会员体系
申请VIP
网站首页 光盘超市 软件下载 技术文章 专题 用户中心 VIP会员 网站留言 论坛 站内搜索 卓越资源 源代码

今天是:2010年03月15日 星期一  您现在位于: 首页 → 技术文章 → Unix环境C语言编程(3...
   Unix环境C语言编程(3)
作者:  出处:Unix爱好者家园unix-cd.com  更新时间: 2005年11月04日 
 第三章 低级输入/输出

3.1 概述

与第二章内容相对应,本章介绍UNIX系统中通过系统调用来实现的输入/输出,通常称之为低级输入/输出。这些系统调用能够直接实现对设备(如磁带驱动器等)的输入和输出,程序员能够决定要使用的缓冲区的大小,而不象标准输入/输出库函数那样透明设定缓冲区大小。

在标准输入/输出库中,一个文件是由一个文件指针来对应的。当使用低级界面时,则用一个文件描述字对应一个文件。文件描述字是一个小的整数。有3个事先定义的文件描述字0、1和2,分别对应标准输入、标准输出和标准错误输出。一般说来,文件描述字都是作为系统调用的第一个参数给出的。

3.2 相关系统调用介绍

·文件创建和关闭
open()用于为读写而打开一个文件,或用它来创建新文件。
int open (const char *path, int oflag, ... /* mode_t mode */);
open使用三个参数:一个字符串path包含要打开的文件名;一个整数oflag指明文件将被如何打开;整数mode在创建文件时使用。常用的oflag包括:
O_RDONLY 打开文件仅用于读。
O_WRONLY 打开文件仅用于写。
O_RDWR 打开文件用于读写。
O_CREAT 如果文件不存在,则创建,此时mode作为第三个参数给出。
close()用于关闭一个已经打开的文件。

·文件读写
read()用于读文件,格式为:
read(int fildes, void *buf, size_t nbyte);
三个参数说明如下:filedes是文件描述字;指针buf指向一个数据将被读入的缓冲区;整数nbytes指明要读的字节个数。成功时返回实际读入的字节数,出错则返回-1。
write()用于写文件,与read类似,格式为:
write(int fildes, void *buf, size_t nbyte);
三个参数说明如下:filedes是文件描述字;指针buf指向一个数据将被写入的缓冲区;整数nbytes指明要写的字节个数。成功时返回实际写入的字节数,出错则返回-1。

·文件移动定位
用于在文件中移动的低级输入/输出系统调用是lseek(),与fseek()类似,它也接收三个参数:一个文件描述字对应一个打开的文件;一个整数指明要移动的字节数,称为offset;一个整数指明从文件中什么位置移动。

·复制文件描述字
有时候有不只一个文件描述字对应一个文件。当创建子进程时(参加后面关于进程开发的章节),这一点很常用。为了获得一个新的文件描述字,并保证其与fd对应同一个文件,应调用
fd2 = dup(fd)
fd2现在和fd对应同一个文件,并且和fd一样在文件中有相同的位置。
 (本文已被浏览 4002 次)
 发布人:sdccf
 → 推荐给我的好友
上篇文章:Unix环境C语言编程(2)
下篇文章:Unix环境C语言编程(4)
 相关文章:
Mandriva Linux 2009 Powerpack新手入门教程 SCO OpenServer 5.0.7连上SQLSERVER2000全纪录
SCO OpenServer 5.0.7制作紧急启动光盘的方法 将SCO OpenServer 5.0.6安装到IBM X3650上
如何把一个软盘镜像HBA文件转光盘ISO格式HBA文件 SCO操作系统安装Serial ATA (SATA)硬盘的方式
ubuntu 8.04 上安装 oracle 10g sco unix 5.07 使用windows FAT 格式的USB盘过程
制作带有hpsas驱动的SCO5.0.6应急和引导光盘安装G5 联想扬天M2600C安装SCO5.0.6+Windows XP
万年历的C语言程序 Sco UNIX的核心引导过程详解
Fedora 7一共有3种类型的Live镜像 Fedora 7下玩游戏
优化Fedora 7,关掉不需要的Fedora services Linux 下 C 语言编程
C语言常见错误 在centos 5中使用xfce桌面环境
C语言中用qsort()快速排序 不使用逻辑运算求得两数的最大值

相关搜索
查看百度中关于Unix环境C语言编程(3)的更多内容
查看google中关于Unix环境C语言编程(3)的更多内容
   文章分类
操作系统 |
SCO_UNIX  Sun_Solaris  IBM_AIX  HP_UX  Linux  BSD  Tru64_UNIX 
通用UNIX知识  Windows  Minix 
程序设计 |
Shell编程  C/C++  汇编  PHP  JAVA  Perl  Python 
ASP/HTML  XML  中间件 
数据库 |
Oracle  Informix  Sybase  Fox  DB2  SQL  MySQL 
PostgreSQL 
网络应用 |
网络应用 
计算机硬件 |
计算机主机  打印机  路由器  交换机  终端  磁带机  MO 
刻录机  终端服务器  调制解调器 
   文章评论
  → 评论内容 (点击查看)   共0条评论,每页显示5条评论   浏览所有评论
(没有相关评论)
  → 发表我的评论
您的姓名: 您的Email:
评论内容:
250字内
发表评论:      发表评论须知 →
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法;
  • 本站有权保留或删除您发表的任何评论内容;
  • 关于我们 ┋  网站留言 ┋  网站地图 ┋  友情链接 ┋  与我在线 ┋  汇款确认 ┋  管理 ┋  TOP
    Unix爱好者家园  http://www.unix-cd.com/
    联系我们:sdccf@163.com
    腾讯QQ: 7644599
    备案序号:鲁ICP备09036304号
    Copyright (c) 2001-2010 Unix-cd.com. All Rights Reserved.