linux文件编程——标准I/O操作函数

一、fopen函数

1.功能描述

用于打开或创建文件,在打开或创建文件时可以指定文件的属性及用户的权限等各种参数。

2.函数

所需头文件:

#include <stdio.h>

函数原型:

FILE *fopen(const char *filename, const char *mode) 使用给定的模式 mode 打开 filename 所指向的文件。
//返回值:该函数返回一个 FILE 指针。否则返回 NULL,且设置全局变量 errno 来标识错误。

参数:
filename – 这是 C 字符串,包含了要打开的文件名称。
mode – 这是 C 字符串,包含了文件访问模式,模式如下:在这里插入图片描述

3.示例代码

代码如下(示例):

#include <stdio.h>
#include <stdlib.h>

int main()
{
   FILE * fp;

   fp = fopen ("file.txt", "w+");
   fprintf(fp, "%s %s %s %d", "We", "are", "in", 2014);
   
   fclose(fp);
   
   return(0);
}

运行结果:

We are in 2014

二、fdopen函数

1.功能描述

将文件描述词转为文件指针

2.函数

所需头文件:

#include <stdio.h>

函数原型:

FILE * fdopen(int fildes, const char * mode);
//返回值:转换成功时返回指向该流的文件指针. 失败则返回NULL, 并把错误代码存在errno 中。

参数:
filename – 这是 C 字符串,包含了要打开的文件名称。
mode – 这是 C 字符串,包含了文件访问模式,
模式同fopen函数

3.示例代码

代码如下(示例):

暂无

三、freopen函数

freopen是被包含于C标准库头文件中的一个函数,用于重定向输入输出流。

1.功能描述

打开文件。

2.函数

所需头文件:

#include <stdio.h>

函数原型:

   FILE *freopen(const char *filename, const char *mode, FILE *stream);
   //返回值:如果成功,则返回该指向该输出流的文件指针,否则返回为NULL。

函数说明:

函数,以指定模式重新指定到另一个文件。模式用于指定新文件的访问方式。

参数:

filename:需要重定向到的文件名或文件路径。
mode:代表文件访问权限的字符串。例如,"r"表示“只读访问”、"w"表示“只写访问”、"a"表示“追加写入”。
stream:需要被重定向的文件流。

3.示例代码

代码如下(示例):

#include <stdio.h>

int main ()
{
   FILE *fp;

   printf("该文本重定向到 stdout\n");

   fp = freopen("file.txt", "w+", stdout);

   printf("该文本重定向到 file.txt\n");

   fclose(fp);
   
   return(0);
}

让我们编译并运行上面的程序,这将发送下列行到标准输出 STDOUT,因为起初我们并没有打开标准输出:

该文本重定向到 stdout

在调用 freopen() 之后,它会关联标准输出 STDOUT 到文件 file.txt,无论我们在标准输出 STDOUT 中写了什么都会被写入 file.txt,所以文件 file.txt 将有以下内容。

该文本重定向到 file.txt

四、fwrite函数

1.功能描述

向文件写入数据。

2.函数

所需头文件:

#include<unistd.h>

函数原型:

   size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)
   // 把 ptr 所指向的数组中的数据写入到给定流 stream 中。
   //返回值:如果成功,该函数返回一个 size_t 对象,表示元素的总数,该对象是一个整型数据类型。
   //如果该数字与 nmemb 参数不同,则会显示一个错误。

函数说明:

ptr – 这是指向要被写入的元素数组的指针。
size – 这是要被写入的每个元素的大小,以字节为单位。
nmemb – 这是元素的个数,每个元素的大小为 size 字节。
stream – 这是指向 FILE 对象的指针,该 FILE 对象指定了一个输出流。

3.示例代码

代码如下(示例):

#include<stdio.h>
 
int main ()
{
   FILE *fp;
   char str[] = "This is runoob.com";
 
   fp = fopen( "file.txt" , "w" );
   fwrite(str, sizeof(str) , 1, fp );
 
   fclose(fp);
  
   return(0);
}

让我们编译并运行上面的程序,这将创建一个文件 file.txt,它的内容如下:

This is runoob.com

五、fseek()函数

1.功能描述

重定位文件内部的指针

2.函数

所需头文件:

#include<unistd.h>

函数原型:

    int fseek(FILE *stream, long int offset, int whence);
   //返回值:重定位成功返回0,否则返回非零值.

函数说明:

在这里插入图片描述

参数:

stream – 这是指向 FILE 对象的指针,该 FILE 对象标识了流。
offset – 这是相对 whence 的偏移量,以字节为单位。
whence – 这是表示开始添加偏移 offset 的位置。它一般指定为下列常量之一:

3.示例代码

代码如下(示例):

#include <stdio.h>

int main ()
{
   FILE *fp;

   fp = fopen("file.txt","w+");
   fputs("This is runoob.com", fp);
  
   fseek( fp, 7, SEEK_SET );
   fputs(" C Programming Langauge", fp);
   fclose(fp);
   
   return(0);
}

让我们编译并运行上面的程序,这将创建文件 file.txt,它的内容如下。最初程序创建文件和写入 This is runoob.com,但是之后我们在第七个位置重置了写指针,并使用 puts() 语句来重写文件,内容如下:

This is C Programming Langauge

六、fclose()函数

1.功能描述

关闭流 stream。刷新所有的缓冲区。

2.函数

所需头文件:

#include <stdio.h>

函数原型:

    int fclose(FILE *stream)
   //返回值:如果流成功关闭,则该方法返回零。如果失败,则返回 EOF。

函数说明:

关闭流 stream。刷新所有的缓冲区。

参数:

1.stream 流

3.示例代码

代码如下(示例):

#include <stdio.h>

int main()
{
   FILE *fp;
 
   fp = fopen("file.txt", "w");

   fprintf(fp, "%s", "这里是 runoob.com");
   fclose(fp);
   
   return(0);
}

让我们编译并运行上面的程序,这将创建一个文件 file.txt,然后写入下面的文本行,最后使用 fclose() 函数关闭文件。

这里是 runoob.com

版权声明:本博所提供的内容均为互联网整理而来,仅供学习参考,如有侵犯您的版权,请联系博主删除。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值