linux C库函数(一)
2010年01月26日
C库函数的文件操作实际上是独立于具体的操作系统平台的,不管是DOS、Windows、Linux、Vxworks中都是这些函数。1.文件打开函数fopen():原型是
FILE *fopen(const char *path,const char *mode);
path --表示文件名和路径名,可以是绝对路径,也可以是相对路径。
比如:fp=fopen("/tmp/file","r+");
fp=fopen("./../file","w+");
mode--打开方式.由r(read),w(write),a(append),t(text),b(banary),+六个字符组成
函数的返回值为文件的流操作指针。
对于UNIX系统,t和b没有区分,用那个都一样,也可以不写其他的有6中组合
“r”=只读,文件必须存在;
“w”=只写,若文件不存在则创建之,已存在则清空内容再写;
"a"=只能追加数据,文件不存在就创建之;
"r+"=允许读和写,文件必须存在;
"w+"=读和写,文件不存在则创建,存在就清空再写;
"a+"=读和追加数据,文件不存在就创建;
打开如果出错,fopen 将返回一个空指针值 NULL,注意要加打开是否成功判断。
if((fp=fopen("../file","r"))==NULL)
{
perror("failed to open ../file");
exit(1);
}
fopen里的所谓当前目录是指:进程工作时的目录
2.文件关闭函数fclose()
文件使用完,最好是要关闭,原型是
int fclose(FILE *fp);
fclose与fopen配对调用。
3.出错处理函数perror()
C标准库和UNIX C库的很多系统函数在错误返回时将错误原因记录在一个全局变量errno中,一般用函数perror()将errno解释成字符串输出。原型:
void perror(const char *s);
每次调用系统函数错误返回后,要马上检查错误原因,perror()只处理最近一次错误产生的errno.
4.字符读写函数fgetc()/fputc() 原型:
int fgetc(FILE *stream);
int fputc(int c,FILE *stream);
在fgetc函数中,文件必须是可读的。fgetc返回的是一个字符(char型)。每读一个字符,自动向后移动一个字节。但申明的是int,这是指该字符的ASCII码。
fputc输入的也是字符c的ASCII码。
5.字符串读写函数fgets()/fputs() 原型:[b]
char *fgets(char *s,int size,FILE *stream);
int fputs(const char*s,FILE *stream);
fgets中, s是缓冲区首地址,size是缓冲区长度,fgets从stream中一次最多读取以'\n'结尾的一行到s中。并且在末尾自动添加一个'\0';
fputs中,s是以'\0'结尾的字符串,fputs将该字符串写入文件stream,但并不写入结尾的'\0'.fputs不需要以'\n'结尾。
/***************************************
2 *复制文本文件file1的内容到file2
3 * 2009.3.25 yunbo03
4 **************************************/
5 #include [b]//头文件在linux系统 /usr/include/下
6 #include
7 #include
8
9 int main(void)
10 {
11 FILE *fp1,*fp2;
12 char ss[512];
13
14 if((fp1=fopen("file1","r"))==NULL){
15 perror("fail to open file1");
16 exit(1);
17 }
18
19 if((fp2=fopen("file2","a+"))==NULL){
20 perror("fail to open file2");
21 exit(1);
22 }
23
24 for(;fgets(ss,10,fp1)!=NULL;)
25 fputs(ss,fp2);
26
27 fclose(fp1);
28 fclose(fp2);
29
30 return 0;
31 }
[/b][/b]
发表评论
-
[转]Flex中[Bindable]的用法
2012-01-20 00:35 536[转]Flex中[Bindable]的用法 2010年06月 ... -
Flex学习笔记(1)
2012-01-20 00:35 538Flex学习笔记(1) 2010年06 ... -
从头开始编写操作系统(8) 第7章:系统结构
2012-01-20 00:35 425从头开始编写操作系统( ... -
Gartner Business Intelligence 08年Gartner商务智能平台魔法四分区
2012-01-20 00:35 680Gartner Business Intelligence 0 ... -
Linux 2.6 版内核引导过程学习
2012-01-20 00:35 889Linux 2.6 版内核引导过程学习 2010年12月29 ... -
杨建:网站加速--服务器编写篇(上)
2012-01-17 00:54 470杨建:网站加速--服务器 ... -
关于J2EE中死锁问题的研究
2012-01-17 00:53 545关于J2EE中死锁问题的研 ... -
file_operations
2012-01-17 00:53 586file_operations 2011年09月19 ... -
ARM经典100问
2012-01-17 00:53 805ARM经典100问 2011年03月13日 第1章 体系 ... -
转:V4L2 - Linux下视频驱动模型
2012-01-17 00:53 964转:V4L2 - Linux下视频驱动模型 2011年03月 ... -
系统调用、POSIX、C库、系统命令和内核函数
2012-01-15 19:38 587系统调用、POSIX、C库、 ... -
socket性能优化(上)
2012-01-15 19:38 589socket性能优化(上) 2012 ... -
诬凹沃官燠喷闳
2012-01-15 19:38 580诬凹沃官燠喷闳 2012年01月06日 U辙趴“ ... -
是傻频日志呵阡啄凛仄
2012-01-15 19:38 492是傻频日志呵阡啄凛仄 2012年01月09日 刘 ...
相关推荐
linux下各种命令大全,还有c语言库函数大全,常用的命令非常齐全!对于初学c语言及linux和ubantu系统的爱好者有很大的帮助!希望可以帮助大家!
Linux c 库函数大全 Linux c 库函数大全 Linux c 库函数大全 Linux c 库函数大全 Linux c 库函数大全
Linux C库函数
很好的linux c 库函数手册,对linu下进行编程的人是很好的资源
linux c库函数源代码 全部库函数的实现源码
最全Linux C 库函数官方中文API手册,相信不用我多说大家都知道是干什么的,开发者都知道,辛苦整理的这个资源,希望大家喜欢,希望对大家有帮助,谢谢大家,请给个五星好评,谢谢啦!
Linux命令行与shell脚本编程、Linux C库函数及系统调用编程、Linux内核分析即应用、Debian(Ubuntu、Deepin)操作系统爬坑.zip Linux命令行与shell脚本编程、Linux C库函数及系统调用编程、Linux内核分析即应用、...
C库函数原代码 。。包含linux c的大部分库函数源码。。。
Linux系统C语言库函数大全,学习Linux C编程必备参考资料。电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍。
Linux命令行与shell脚本编程、Linux C库函数及系统调用编程、Linux内核分析即应用、Debian(Ubuntu、Deepin)操作系统爬坑.zip Linux命令行与shell脚本编程、Linux C库函数及系统调用编程、Linux内核分析即应用、...
Linux下C程序常用函数的查询,对于初学LinuxC编程的朋友应该有一定帮助
关于linux环境下C编程的库函数,是网页格式,挺好的
linux C的库函数查询词典 辅助开发使用
自己整理的Linux C库函数大全,含有标签,方便查询,很实用。
linux C库函数手册 pdf版本 用的时候直接查就可以了
Linux C库函数 htm格式 还要txt chm格式,请搜索 在线文档请参考: http://man.chinaunix.net/develop/c&c++/linux_c/default.htm
非常好的linuxc库函数参看文件,包括头文件,返回值,函数原型等
Linux C库函数手册 比较详细的C函数
Linux C函数库参考手册是一套Linux C函数使用手册,这里还提供了LinuxC函数手册chm,帮助大家查找。在Linux下,使用到的C语言函数中文手册,全都有实例,如果你是大神,完全不需要,如果你对英文的手册感到头疼,...
linux下的c库函数大全 2008年11月20日 星期四 08:21Linux C函数库参考手册 第1章字符测试函数 isalnum(测试字符是否为英文字母或数字) isalpha(测试字符是否为英文字母) isascii(测试字符是否为ASCII码字符) ...