#include <stdio.h>
输入函数:int getc(FILE *fp), int fgetc(FILE *fp), int getchar(void), char *fgets(char * buf, FILE *fp), char *gets(char *buf),size_t fread(void *ptr, size_t szie, size_t nobj, FILE *fp)。
输出函数:int putc(int c, FILE *fp), int fputc(int c, FILE *fp), int putchar(int c), int fputs(const char *str, FILE *fp), int puts(const char *str),size_t fwrite(const void *ptr, size_t size, size_t nobj, FILE *fp)。
其中:
getc,fgetc,getchar,putc,fputc,putchar 函数用于一次一个字符输入输出。
fgets,gets,fputs,puts 用于一次一行输入输出。
fread, fwrite 用于读写一个二进制数组或者一个结构。
函数 getchar==getc(stdin),putchar==putc(c, stdout)。
getc,putc 两个函数可实现为宏,fgetc 和 fputc 不能实现为宏。
gets 是不安全的,原因如果读到的字符数如果大于缓冲区长度,因为不能设置缓冲区长度,因此可能会溢出,故不推荐使用。
puts 是安全的,将一个以null结尾的字符串写到标准输出后再将一个换行符写到标准输出。
fgets 必须指定缓冲区长度,读取(指定长度-1)个的字符串,以null字符结尾。函数将读到下一个换行符为止,但不会读取超过(指定长度-1)个字符,如果一次无法读完一行,则返回的不是一行,而是(指定长度-1)个字符,再次调用fgets将会从未读字符位置读取。
fputs 将一个以null结尾的字符串写到指定流,null不写出。通常 null 前面是一个换行符,但并不要求一定是。
fread,fwrite 读写二进制数组或者结构体,如:
将一数组中的第2-5个元素写入文件:
float data[10];
fwrite(&data[2], sizeof(float), 4, fp); // &data[2]开始写入的位置, sizeof(float)要写入每个数据长度,4为要写入的数量。。。
读取一个结构体:
struct{
int count;
char szmsg[1024];
}item;
fread(&item, sizeof(item), 1, fp ); // &item 结构体指针,长度,数量。。。
使用标准I/O库的输入输出函数由于数据量的大小,可能效率不高,如 fgets和fputs 要在内核和标准I/O之间复制一次数据,然后再在标准I/O和用户程序之间再复制一次。因此可考虑使用其它快速I/O库版本。
分享到:
相关推荐
《Linux/Unix系统编程手册(下)》是深入理解Linux和Unix操作系统内核与系统编程不可或缺的参考书籍。这本书详细阐述了在这些操作系统环境下进行程序设计、系统调用、网络编程以及文件操作等方面的关键概念和技术。 ...
4. **文件和I/O流**:涵盖标准输入/输出(stdio)库和低级别的文件操作。了解fdopen(), fopen(), fseek(), fclose()等函数以及缓冲机制。 5. **内存管理**:包括动态内存分配(malloc, calloc, realloc, free)和...
4. **文件I/O**:理解文件描述符、标准输入/输出和重定向,掌握open(), read(), write(), close()等函数。 5. **权限和文件系统**:学习Linux的文件权限模型,理解用户、组和权限设置,以及如何使用chown(), chmod...
此外,还会涵盖标准输入、输出和错误流,以及重定向和管道等I/O功能。 二、进程管理 进程是UNIX/Linux系统中的基本执行单元。书中会详细介绍进程的创建(fork)、执行(exec)和退出,以及进程间通信(IPC)的方法...
7. **标准输入输出与重定向**:标准输入(`stdin`)、标准输出(`stdout`)、标准错误(`stderr`)以及I/O重定向和管道(`, `>`, `|`)是命令行交互的基础。 8. **系统调用与库函数**:区分系统调用(如`write()`)...
在Linux/UNIX环境下,与用户交互通常涉及标准输入输出,如从`stdin`读取数据。`get_num.c`可能是对`scanf()`、`fgets()`等函数的使用演示,或者它可能包含了更复杂的输入验证和错误处理逻辑。 此外,提到的“第8.2...
4. **标准I/O库和文件操作**:掌握C语言中的标准输入输出和文件操作函数,如fopen、fclose、fgets、fprintf等。 5. **进程和线程**:理解进程的概念,学习fork、exec、wait系列函数,以及多线程编程的原理和pthread...
在IT领域,Linux/Unix Shell编程是系统管理员和开发者日常工作中不可或缺的一部分。Shell作为操作系统与用户交互的接口,提供了一种高效的方式来自动化任务,执行批处理操作,以及编写复杂的脚本。本文将深入探讨...
Linux/Unix Shell编程是操作系统与用户交互的重要方式,它是一种脚本语言,允许用户通过命令行界面执行系统级任务和自动化工作流程。Shell不仅提供基本的命令行操作,还可以编写复杂的脚本来处理文件、目录、进程和...
1. **标准输入/输出(stdin, stdout, stderr)**:这是C程序与用户交互的主要方式。在UNIX中,程序可以重定向这些流以实现非交互式或批处理操作。 2. **头文件和预处理器**:在UNIX系统中,C程序经常使用`<stdio.h>...
5. **改进的行缓冲**:Python 3.7中的文件对象现在默认使用行缓冲,这使得在交互式脚本中处理标准输入和输出更有效率。 6. **垃圾回收**:Python 3.7在垃圾回收机制上进行了优化,提升了程序的内存效率。 7. **...
Linux/Unix Shell编程指南是针对操作系统中的命令行接口——Shell的一种编程手册,它涵盖了如何编写脚本、自动化任务以及管理操作系统资源的基本概念。Shell编程在系统管理、软件开发和日常任务自动化中扮演着重要...
标题中的"xuqu4.rar_Linux/Unix编程_expressionnh2"表明这是一个与Linux或Unix操作系统相关的编程资源,可能是一个代码库或者教程,重点是“expressionnh2”,这可能是某种特定的表达式处理或编程概念的缩写。...
1. **文件I/O**:包括标准输入/输出流,打开、关闭文件,读写文件,以及错误处理。书中会介绍如何使用fopen, fclose, fread, fwrite等函数进行文件操作,并讲解缓冲机制和文件定位。 2. **进程管理**:涵盖进程创建...
例如,`stdio.h`提供了输入输出功能,`stdlib.h`包含了内存管理和数学函数,`unistd.h`则包含了一些操作系统相关的接口。 此外,还应学习如何编写shell脚本,如Bash。Shell脚本允许自动化重复的任务,结合条件语句...
总结来说,USB在Linux/Unix编程主要涉及USB协议的理解、设备驱动开发以及使用内核或用户空间库与设备通信。理解这些知识点对于开发和调试与USB设备相关的应用程序至关重要。压缩包中的"usb"文件可能是USB驱动的源...
本教程将深入探讨TTY Linux/Unix编程,特别是通过分析TTY模块的源码来理解其工作原理。 首先,TTY驱动程序是Linux内核中的一个关键组件,它为文本模式的交互提供了一个接口。当用户在控制台输入命令时,这些字符...
2. **文件系统和I/O操作**:详述了打开、关闭、读写文件的基本操作,以及文件描述符、标准输入/输出流、文件定位(lseek)和文件复制等高级特性。 3. **信号**:介绍信号的发送、接收、处理机制,以及信号在进程...
Linux和Unix Shell编程指南是IT领域中非常重要的一个主题,尤其对于系统管理员、开发者和自动化工程师来说,掌握Shell脚本编写技巧是必不可少的。Shell作为操作系统与用户交互的接口,提供了强大的命令行工具和自动...