1.函数fputc;
函数原型:

 int fputc(int c, FILE *stream);
返回值:如果没有发生错误,则返回被写入的字符。如果发生错误,则返回 EOF,并设置错误标识符。
c -- 这是要被写入的字符。该字符以其对应的 int 值进行传递。
stream -- 这是指向 FILE 对象的指针,该 FILE 对象标识了要被写入字符的流。

注意:该函数是一个字符一个字符的写进的,并不是一串一串的写,还有其实这个函数跟write是一样的,就是将字符写进文件的意思。

上代码:

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>int main()
{FILE *fp;int data = 20;int i;int len;char *pstr = "hello world!";fp = fopen("./test.txt","w+");//int fputc(int c, FILE *stream);fputc(data,fp);len  = strlen(pstr);for(i = 0;i < len;i++){fputc(*pstr,fp);pstr++;}fclose(fp);return 0;
}

代码里的第一个fputc是将整数data写进fp所指向的文件里的意思,第二个fputc函数是将字符串pstr写进文件里。

2.fgetc函数
函数原型:

 int fgetc(FILE *stream);
返回值:该函数以无符号 char 强制转换为 int 的形式返回读取的字符,如果到达文件末尾或发生读错误,则返回 EOF。
参数:stream -- 这是指向 FILE 对象的指针,该 FILE 对象标识了要在上面执行操作的流。
描述:C 库函数 int fgetc(FILE *stream) 从指定的流 stream 获取下一个字符(一个无符号字符),并把位置标识符往前移动。说白了就是相当于读取函数read,只不过这个函数也是一个一个字符的读取的,并不是一串字符串的方式读取。

3.feof函数
函数原型:

   int feof(FILE *stream);
返回值:当设置了与流关联的文件结束标识符时,该函数返回一个非零值,否则返回零。(这个说的很官方),说白了就是还没到字符串结束的时候返回0值,当到了字符串的结束位置时返回一个非零值。
参数:stream -- 这是指向 FILE 对象的指针,该 FILE 对象标识了流。
C 库函数 int feof(FILE *stream) 测试给定流 stream 的文件结束标识符。即测试文件字符串是否到了末尾。(没到返回0值,到了返回非零值)

直接上fgetc函数和feof函数的代码:

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>int main()
{FILE *fp;char a;char *pstr = "hello world!!";fp = fopen("./test.txt","w+");fwrite(pstr,sizeof(char),strlen(pstr),fp);fseek(fp,0,SEEK_SET);while(!feof(fp)){a = fgetc(fp);printf("%c",a);}printf("\n");fclose(fp);return 0;
}

注意:while里的条件是!feof(),意思是取反的意思,因为feof还没到字符串末尾时是返回一个零值,到了字符串末尾时是返回一个非零值,取反之后就是还没到尾巴处就返回一个非零值,到了就返回一个零值,即while的条件为真时才往下执行。

学习笔记,仅供参考。

Linux系统编程之API(fputc、fget和feof)相关推荐

  1. linux常用ipc技术,LINUX系统编程之IPC

    LINUX系统编程之IPC(Inter Processes Communication) 一.信号 1.信号的产生 软件中断,异步通信,ctrl+c,kill函数,kill命令,硬件异常(段错误),软 ...

  2. Linux系统编程之waitpid函数详解

    5.1 为什么要进行进程资源的回收 当一个子进程退出之后,该进程能够回收自己的用户区的资源,但是不能回收内核空间区的PCB(process control block 进程控制块)资源. (即:子进程 ...

  3. Linux系统编程之Vim使用小技巧---代码自动对齐,智能提示

    自动对齐:(gg=G) 在命令模式下(即非"插入"等编辑模式),先输入gg,这时候光标会移动到第一行第一个字符,然后按 "=" 号之后切换成大写,再按一下G,这 ...

  4. linux so_linger,linux系统编程之getsockopt/setsockopt 函数

    最近看别人写的代码很多函数不知道啊,在研究分布式消息队列beanstalkd,遇到了很多东西.尤其是网络连接方面. 代码是这样的. setsockopt(fd, SOL_SOCKET, SO_REUS ...

  5. Linux系统编程一:时间和延时、gmtime和local函数返回相同

    目录 1. 概述 2. 延时函数 3. 当前时间 3.1 时间调用函数 3.2 时间转换函数 4. gmtime和local函数返回相同 测试代码 1. 概述 前面的几篇文章Linux学习笔记一到七, ...

  6. Linux C高级编程——网络编程之API(5)

    Linux C网络编程--API 宗旨:技术的学习是有限的,分享的精神的无限的.          一.基本socket函数 Linux系统是通过提供套接字(socket)来进行网络编程的.网络的so ...

  7. 什么是Linux的原生GUI API?

    本文翻译自:What is Linux's native GUI API? I hope this doesn't come across as a stupid question but it's ...

  8. FFmpeg的远程视频监控系统编解码

    FFmpeg的远程视频监控系统编解码 2013-05-07 22:29:32|  分类: 默认分类|举报|字号 订阅 FFmpeg的远程视频监控系统编解码 FFmpeg的远程视频监控系统编解码 ? 0 ...

  9. linux c编程之fcntl

    fcntl可实现对指定文件描述符的各种操作,其函数原型如下: int fcntl(int fd, int cmd, ... /* arg */ ); 其中,操作类型由cmd决定.cmd可取如下值: F ...

最新文章

  1. Django 框架入门篇(安装与创建项目)
  2. python怎么把图片压缩_使用Python轻松批量压缩图片
  3. 【Linux】一步一步学Linux——touch命令(33)
  4. python中的matplotlib.pyplot_python matplotlib中axes与axis的区别?
  5. Domino下实现仿Google搜索提示效果
  6. 机器学习入门|线性回归(二)
  7. 威学一百_涨价通知丨威学一百VIP全年畅学卡价格即将上调!
  8. 如何在思科交换机上配置Telnet远程登录
  9. FreeMarker下拉列表选中值回显
  10. python学生成绩分析与预测
  11. 在微软工作有多舒服?
  12. OFDM载波间隔_OFDM之频域
  13. 利用CRISPR基因编辑高效靶向诱变玉米农作物/植物核糖蛋白复合物的研究
  14. 【css】使用 canvas 画一个圆、贝塞尔曲线画对话气泡
  15. 网络使用工具HttpWatch的使用方法
  16. K-means 算法实现二维数据聚类
  17. 最接近win7的Linux系统,Windows7Vs.Linux——操作系统大PK
  18. 音频特效生成与算法 1
  19. golang编辑器查看git哪一行是谁修改的,什么时候修改的方法
  20. SQL Server 数据库备份还原和数据恢复

热门文章

  1. 星巴克显示服务器发生异常,星巴克APP崩了怎么回事?什么时候恢复?星巴克APP网络异常怎么修复?...
  2. 通过100个单词掌握英语语法(十七)could
  3. 在测试VPN时候的惊天大坑,命令行查到的ip与百度搜索的ip不一致
  4. 上王者的正确姿势:OPPO R17 Pro王者定制版
  5. 徐州哪有教计算机编程的,太牛了!徐州这家青少年编程培训中心除了教编程,还教给孩子最宝贵的……...
  6. win10蓝牙开关不见了_dell的蓝牙出现问题了,不能连接
  7. mysql集群与分布式数据库_数据库集群与分布式系统的区别
  8. springboot球鞋商城毕业设计源码011229
  9. 如何禁用excel的保存和另存为选项
  10. FZU 1649 Prime number or not (大素数测试)