Linux学习7-文件操作
- fopen fclose
- fread fwrite
- fflush-
- fseek-
- fgetc getc getchar
- fputc putc putchar
- fgets gets
- printf fprintf sprintf
- scanf fscanf sscanf

2. fwrite fread
标准I/O库 常用函数使用
1.fopen函数 :用于文件和终端的输入和输出。
#include <stdio.h>
FILE * fopen(const char* filename, const char *mod);
2.fclose函数:关闭指定的文件流stream。
#include <stdio.h>
int fclose(FILE *stream);
3.getcwd函数:把当前目录的名字写入buf中。
#include<unistd.h>
char* getcwd(char* buf ,size_t size);
#include<stdio.h>
#include<unistd.h>
int main()
{
char acFilePath [] = {}; getcwd(acFilePath, sizeof(acFilePath));
printf("path is %s \r\n", acFilePath);
return ;
}
ex:

4.fgets函数:从输入文件流stream中读取一个字符串。
#include <stdio.h>
char *fgets(char *s, int n ,FILE *stream);
fgets把一个字符串写到s指向的的字符串里,直到出现以下某种情况:
- 遇到换行符
- 已经传输了n-1个字符
- 到达文件尾。
它会把遇到的换行符号也传递到接收字符串里,再加上一个表示结尾的空字节\0。一次最多只能传输n-1个字符。
5格式化输入输出
#include <stdio.h>
int fprintf(FILE *stream, const char *format, ...)
把自己的输出送到一个指定的文件流中。
#include<stdio.h>
int main()
{
FILE *pfile = fopen("/home/xiaodeyao/wzh/code/3_IO/new.txt","wb+");
fprintf(pfile, "the num is %d, the string is %s", , "hello world!");
return ; }
ex:

#include <stdio.h>
int fscanf(FILE *stream, const char *format, ...)
从流 stream 读取格式化输入。
#include<stdio.h>
int main()
{
FILE *pfile = fopen("/home/xiaodeyao/wzh/code/3_IO/fscanf.txt", "r");
int a = ;
char acDate[] = {};
float dou = ;
char c = ;
fscanf(pfile, "%d %s %c %f", &a, acDate, &c, &dou);
printf("%d, %s, %c ,%f\r\n", a, acDate, c, dou);
return ;
}
ex:

ps:这里文件mod如果是“w‘”,会有问题。但是某些情况下是可以用“w"的。例如:http://www.runoob.com/cprogramming/c-function-fscanf.html
这里待深究一下。
6.fseek()
为下一次文件读写操作指定位置。
int fseek(FILE *stream, long int offset, int whence)
stream -- 这是指向 FILE 对象的指针,该 FILE 对象标识了流。
offset -- 这是相对 whence 的偏移量,以字节为单位。
whence -- 这是表示开始添加偏移 offset 的位置。它一般指定为下列常量之一:
常量 描述
SEEK_SET 文件的开头
SEEK_CUR 文件指针的当前位置
SEEK_END 文件的末尾
#include <stdio.h> int main ()
{
FILE *fp; fp = fopen("file.txt","w+");
fputs("This is w3cschool.cc", fp); fseek( fp, , SEEK_SET );
fputs(" C Programming Langauge", fp);
fclose(fp); return();
}
ex:

7.ftell()
long int ftell(FILE *stream)
参数
stream -- 这是指向 FILE 对象的指针,该 FILE 对象标识了流。
返回值
该函数返回位置标识符的当前值。如果发生错误,则返回 -1L,全局变量 errno 被设置为一个正值。
#include <stdio.h> int main ()
{
FILE *fp;
int len; fp = fopen("file.txt", "r");
if( fp == NULL )
{
perror ("打开文件错误");
return(-);
}
fseek(fp, , SEEK_END); len = ftell(fp);
fclose(fp); printf("file.txt 的总大小 = %d 字节\n", len); return();
}
ex:

参考:
http://www.runoob.com/cprogramming/c-function-ftell.html
ps:C语言文本方式和二进制方式读写操作的区别 http://blog.csdn.net/junbopengpeng/article/details/13091045
Linux学习7-文件操作的更多相关文章
- Linux学习之文件操作
Linux,一起学习进步- mkdir The mkdir command is used to create directories.It works like this: mkdir命令是用 ...
- Linux学习-基本命令文件操作
终端 1.多个终端 连接linux的客户端可以理解为终端. 命令:tty查看终端 2.不同终端之间的通讯 [root@wyx wyx]# echo 123 > /dev/pts/1 把123发给 ...
- 3)Linux程序设计入门--文件操作
)Linux程序设计入门--文件操作 Linux下文件的操作 前言: 我们在这一节将要讨论linux下文件操作的各个函数. 文件的创建和读写 文件的各个属性 目录文件的操作 管道文件 .文件的创建和读 ...
- Linux学习之文件特殊权限详解(SetUID、SetGID、Sticky BIT)(十一)
Linux学习之文件特殊权限详解(SetUID.SetGID.Sticky BIT) 目录 SetUID SetGID Sticky BIT SetUID SetUID简介 只有可以执行的二进制程序和 ...
- python学习笔记:文件操作和集合(转)
转自:http://www.nnzhp.cn/article/16/ 这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句 ...
- HTML5学习之文件操作(九)
之前我们操作本地文件都是使用flash.silverlight或者第三方的activeX插件等技术,由于使用了这些技术后就很进行跨平台的处理,另外就是让我们的web应用依赖了第三方的插件,而不是很独立 ...
- Smart210学习记录-------文件操作
一.linux文件操作(只能在linux系统上用) 创建:int creat(const char* filename, mode_t mode) filename 表示要创建的文件名,mode表示对 ...
- Linux系统编程@文件操作(一)
只总结了部分常用的内容,详细内容参考<UNIX环境高级编程>及相关书籍. Linux中文件编程可以使用两种方法 Linux系统调用(依赖于系统) C语言库函数(不依赖于系统) Linux系 ...
- linux下的文件操作——批量重命名
概述:在日常工作中,我们经常需要对一批文件进行重命名操作,例如将所有的jpg文件改成bnp,将名字中的1改成one,等等.文本主要为你讲解如何实现这些操作 1.删除所有的 .bak 后缀: renam ...
- NodeJS学习之文件操作
NodeJS -- 文件操作 Buffer(数据块) JS语言自身只有字符串数据类型,没有二进制数据类型,因此NodeJS提供了一个与String对等的全局构造函数Buffer来提供对二进制数据的操作 ...
随机推荐
- Hyperldeger Fabric踩过的坑
给参与者颁发身份时错误 错误信息: fabric-ca request register failed with errors [[{"code":400,"messag ...
- nodejs mongodb 查询要看的文章
http://www.cnblogs.com/refactor/archive/2012/07/30/2591344.html 数组很大多数情况下可以这样理解:每一个元素都是整个键的值. db.use ...
- Spring学习总结之装配bean
1. XML中显式配置 规范,文件头: <?xml version=”1.0” encoding=”UTF-8”?> <beans xmlns=http:// ...
- 团队作业(五)——旅游行业的手机App
首先是作业要求: 在PM 带领下, 每个团队深入分析下面行业的App, 找到行业的Top 5 (从下面的三个备选中,任选一个行业即可) 英语学习/词典App 笔记App 旅游行业的手机App 我们选择 ...
- Java编写准备数据源
1.装饰设计模式 package com.itheima.ds; import java.sql.Array; import java.sql.Blob; import java.sql.Callab ...
- 各小组Alpha版项目发布作品点评
第一组:新蜂小组 题目:俄罗斯方块 评论:主体功能已经完成,可以流畅的进行游戏,游戏素材都是由贴图美化过的,期待计分系统等的完善. 第二组:天天向上 题目:连连看 评论:核心功能完成,可以流畅的进行游 ...
- Python爬虫利器:BeautifulSoup库
Beautiful Soup parses anything you give it, and does the tree traversal stuff for you. BeautifulSoup ...
- [Asp.net MVC]Asp.net MVC5系列——布局视图
目录 系列文章 概述 布局视图 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 [Asp.net MVC]Asp.net MVC5系列——添加视图 [Asp.net M ...
- linux分区命名
linux中任何内容都是文件 硬盘 文件 用户 都是文件 硬件设备文件名称 ide硬盘 /dev/hd[a-d] scsi/sata/usb硬盘 /dev/sd[a-p] 光驱 /dev/cdrom/ ...
- 使用AutoMapper实现Dto和Model的自由转换(上)
在实际的软件开发项目中,我们的“业务逻辑”常常需要我们对同样的数据进行各种变换.例如,一个Web应用通过前端收集用户的输入成为Dto,然后将Dto转换成领域模型并持久化到数据库中.另一方面,当用户请求 ...