linux高级编程1

文件:

1.必要性:

保存数据(存放在外存掉电不丢失数据、便宜、访问速度慢、存储量大)
linux下一切皆文件:鼠标、键盘,显示器……硬件设备      (第一个字母为文件类型)

2.Linux文件类型:

b        block    块设备文件    存储设备
c        character    字符设备文件    输入输出设备
d        directory    目录文件    
-        regular    普通文件    xxx.c xxx.txt 普通文件
                                           a.out、xxx.jpg 二进制文件
l        link    软连接文件    类似windows的快捷方式
s        socket    套接字文件    网络通信
p        pipe    管道文件    进程间通信


3.Linux下文件操作方法:

I:input O:output

1.标准IO
        标准c库提供的一套文件操作接口。

        --操作方法--
        打开文件  fopen
        读写 fgets/fputs() fgetc()/fputc() fread()/fwirte()
        关闭文件 fclose()
2.文件IO
        Linux内核为Linux系统提供的一套文件操作接口

        --文件操作思想--
        打开文件
        读or写
        关闭文件
3.函数接口  
FILE *fopen(const char * pathname,const char *mode)

功能:打开一个文件,并且将文件关联到一个流上

参数:

        pathname :要打开的文件名的指针

        mode:打开方式,方式包括:

"r"        以只读方式打开,定位到文件的开头,文件必须存在
"r+"        以可读可写方式打开,定位到文件的开头,文件必须存在
"w"        以只写方式打开,文件不存在则创建,文件已存在清空
"w+"        以可读可写方式打开,文件不存在则创建,文件已存在清空
"a"        以追加写的方式打开,定位在末尾,不存在则创建
"a+"        以可读可写的方式打开,读在开头打开,写在末尾追加,不存在则创建
返回值:

        成功:FILE*

        失败:NULL

文件流:数据从文件流入和流出体现的字节流

FILE *-->文件流指针

标准IO:将一个打开的文件和一个文件流指针(FILE*)关联,后面操作文件,皆面向文件流指针

 int fputc(int c,FILE *stream)

功能:将一个字符写入文件

参数:

        c:写入的字符

        stream:被写入的文件

返回值:

        成功:返回写入的ASCII码值

        失败:返回EOF (-1)

int fclose(FILE *stream);

功能:关闭一个文件

参数:stream:文件流指针

返回值:

        成功:0

        失败:EOF(-1)

 int fgetc(FILE *stream);

//指针会自己向后移,则调一次指针会++一次

功能:从文件中读取一个字符

参数:

        stream:要读的文件流指针

返回值:        

           成功:返回写入的ASCII码值

           失败:返回EOF (-1)

int main(int argc,const char *argv[])

函数运行传参;格式:./a.out <filename>

argc-->程序运行时,传递给主函数的参数个数

argv-->指针数组

argv[0]  -->   ./a.out

argv[1]  -->   filename      

fgetc和fputs如何读写终端:

终端:文件 操作系统默认打开了三个流:

FILE *

stdin   -->  标准输入流  -->键盘

stdout -->  标准输出流  -->显示屏(终端)

stderr -->   标准出错流  -->显示屏(终端)

一个字节读写文件(普通文件与二进制文件都可copy)

int fputs(const char *s,FILE *stream);

功能:将字符串写入文件,不包括字符串结束标志'\0'。

参数:

         s:字符串首地址

         stream:要读的文件流指针

返回值:

        成功:返回正数

        失败:返回EOF

char *fgets(char * s,int size FILE * stream);

//输入什么输出什么包括换行(换行停止)

功能:从文件中读取一组数据

参数:

        s:读取到的数据存储在s->buff

        size:最多输出size-1个

        stream:要读的文件流指针

返回值:

        成功:返回存储数据的首地址

        失败:返回NULL

        读到文件末尾:NULL

fgets与scanf区别

fgets:遇到\n停止   可以读到\n

scanf:  遇到空格或者tab(空格制表符)停止     只能读到 空格

fgets与gets区别

fgets:char *fgets(char * s,int size FILE * stream)   包括换行

get:     char *gets(char *s)                                         不包括换行

 *gets是危险的,没有大小限制,造成越界访问

字符串打印 %s  字符打印 %c

阻塞:进程等待输入时停止运行(光标闪烁)

* od -c 1.txt   在终端查看1.txt的内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值