为你推荐

文件I/O(不带缓冲)之I/O的效率

程序清单3-3中的程序使用read和write函数复制文件。关于该程序应注意下列各点:它从标准输入读,写至标准输出,这就假定在执行本程序之前,这些标准输入、输出已由shell安排好。确实,所有常用的UNIX系统shell都提供一种方法,它在标准输入上打开一个文件用于读,在标准输出上创建(或重写)一个文件。这使得程序不必...
代码星球·2021-02-21

文件I/O(不带缓冲)之write函数

调用write函数向打开的文件写数据。#include<unistd.h>ssize_twrite(intfiledes,constvoid*buf,size_tnbytes);返回值:若成功则返回已写的字节数,若出错则返回-1。其返回值通常与参数nbytes的值相同,否则表示出错。write出错的一个常见...

文件I/O(不带缓冲)之read函数

调用read函数从打开文件中读数据。#include<unistd.h>ssize_tread(intfiledes,void*buf,size_tnbytest);返回值:若成功则返回读到的字节数,若已读到文件结尾则返回0,若出错则返回-1。有多种情况可是实际读到的字节数少于要求读的字节数:读普通文件时,...

文件I/O(不带缓冲)之close函数

可调用close函数关闭一个打开的文件:#include<unistd.h>intclose(intfiledes);返回值:若成功则返回0,若出错则返回-1。关闭一个文件时还会释放该进程加在该文件上的所有记录锁。当一个进程终止时,内核自动关闭它所有打开的文件。很多程序都利用了这一功能而不显示地用close...

文件I/O(不带缓冲)之lseek函数

每个打开的文件都有一个与其相关联的“当前文件偏移量”(currentfileoffset)。它通常是一个非负整数,用以度量从文件开始处计算的字节数。通常,读、写操作都从当前文件偏移量处开始,并使偏移量增加所读写的字节数。按系统默认情况,当打开一个文件时,除非指定O_APPEND选项,否则该偏移量被设置为0。可以调用ls...

文件I/O(不带缓冲)之creat函数

本篇博文内容摘自《UNIX环境高级编程》(第二版),仅作个人学习记录所用。关于本书可参考:http://www.apuebook.com/。也可调用creat函数创建一个新文件。#include<fcntl.h>intcreat(constchar*pathname,mode_tmode); 返回...

文件I/O(不带缓冲)概述

一、引言UNIX系统中大多数文件I/O只需用到5个函数:open、read、write、lseek以及close。这些函数经常被称为不带缓冲的I/O(unbufferedI/O)。术语不带缓冲指的是每个read和write都调用内核中的一个系统调用。这些不带缓冲的I/O函数不是ISOC的组成部分,但是,它们是POSIX...
代码星球·2021-02-21

文件I/O(不带缓冲)之open函数

调用open函数可以打开或创建一个文件。#include<fcntl.h>intopen(constchar*pathname,intoflag,.../*mode_tmode*/); 返回值:若成功则返回文件描述符,若出错则返回-1。我们将第三个参数写为...,ISOC用这种方法表明余下参数的数...

UNIX标准化及实现之标准之间的冲突

就整体而言,这些不同的标准之间配合得相当好。但是我们也很关注它们之间的差别,特别是ISOC标准和POSIX.1之间的差别。ISOC定义了函数clock,它返回进程使用的CPU时间,返回值类型是clock_t。为了将此值变换成以秒为单位,将其除以在<time.h>头文件中定义的CLOCKS_PER_SEC。P...

UNIX标准化及实现之基本系统数据类型

历史上,某些UNIX系统变量已与某些C数据类型联系在一起。例如,历史上主、次设备号一直存放在一个16位的短整型中,8位表示主设备号,另外8位表示次设备号。但是,很多较大的系统需要用多于256个值来表示其设备号,于是,就需要有一种不同的技术。头文件<sys/types.h>中定义了某些与实现有关的数据类型,它...

UNIX标准化及实现之功能测试宏

在头文件中定义了很多POSIX.1和XSI的符号。但是除了POSIX.1和XSI的定义之外,大多数实现在这些头文件中也加上了它们自己的定义。如果在编译一个程序时,希望它只使用POSIX定义而不使用任何实现自己定义的限制,那么就需要定义常量_POSIX_C_SOURCE。所有POSIX.1头文件中都使用此常量。当定义该常...

UNIX标准化及实现之选项

POSIX.1的2001版,包括了ISOC标准所指定的各个函数。其接口分成了两类:必需接口和可选接口。可选接口按功能又进一步分成50个区。表1中按它们各自的选项代码总结了没有被弃用的编程接口。选项代码是由2-3个字符构成的字母缩写,以便标识属于各个功能区的接口。选项代码会突出显示手册相关页面上的文本,表明接口依赖于对特...
代码星球·2021-02-21

UNIX标准化及实现之限制

前言UNIX系统实现定义了很多幻数和常量,其中有很多已被硬编码(关于硬编码和软编码:http://www.cnblogs.com/chenkai/archive/2009/04/10/1432903.html)进程序中,或用特定的技术确定。由于大量标准化工作的努力,已有若干种可移植的方法用以确定这些幻数和实现定义的限制...
代码星球·2021-02-21

UNIX标准化及实现之POSIX标准可选头文件

POSIX标准定义的可选头文件头文件说明<aio.h>异步I/O<mqueue.h>消息队列<pthread.h>线程<sched.h>执行调度<semaphore.h>信号量<spawn.h>实时spawn接口<stropts.h>X...

UNIX标准化及实现之POSIX标准扩展头文件

POSIX标准定义的XSI(X/OpenSystemInterface)扩展头文件头文件说明<cpio.h>cpio归档值<dlfcn.h>动态链接<fmtmsg.h>消息显示结构<ftw.h>文件树漫游<iconv.h>代码集转换实用程序<langin...