- 浏览: 63893 次
- 性别:
- 来自: 苏州
文章分类
最新评论
-
brxonline:
提示不能这样写234390216 写道234390216 写道 ...
mysql导出数据为excel -
234390216:
234390216 写道不行啊,错误
提示不能这样写
mysql导出数据为excel -
234390216:
不行啊,错误
mysql导出数据为excel
1.流的定向
freopen函数清除一个流的定向,fwide设置流的定向
#include <stdio.h>
#include <wchar.h>
int fwide(FILE *fp, int mode);
如果mode的参数值为负,fwide将试图使指定的流是字节定向的。
如果mode的参数值为正,fwide将试图使指定的流是宽定向的。
如果mode的参数值为0,fwide将不试图设置流的定向, 但返回标识该流定向的值。
2.缓冲
标准IO提供了三种类型的缓冲:
全缓冲
行缓冲
不带缓冲
有两个函数可以更改缓冲类型
#include <stdio.h>
void setbuf(FILE *restrict fp, char *restrict buf);
int setvbuf(FILE *restrict fp, char *restrict buf,
int mode,
size_t size);
任何时候我们都可以强制冲洗一个流
#include <stdio.h>
int fflush(FILE *fp);
3.打开流
#include <stdio.h>
FILE *fopen(const char *restrict pathname, const
char *restrict type);
FILE *freopen(const char *restrict pathname, const
char *restrict type,
FILE *restrict fp);
FILE *fdopen(int filedes, const char *type);
type参数指定对IO流的读、写方式
r or rb 为读而打开
w or wb 把文件截短至0,或为写而打开
a or ab 添加,为在文件尾写而打开,或为写而创建
r+ or r+b or rb+ 为读和写而打开
w+ or w+b or wb+ 把文件截短至0长,或为读和写而打开
a+ or a+b or ab+ 为在文件尾读和写而打开或创建
4.读写流
一次读一个字符
#include <stdio.h>
int getc(FILE *fp);
int fgetc(FILE *fp);
int getchar(void);
不管是出错还是到达文件尾端,这三个函数都返回同样的值。为了区分这两种情况必须用下面两个函数
#include <stdio.h>
int ferror(FILE *fp);
int feof(FILE *fp);
清除标志
void clearerr(FILE *fp);
从流中读取数据后,可以调用ungetc将字符再压送回流中
#include <stdio.h>
int ungetc(int c, FILE *fp);
每次输出一个字符的函数
#include <stdio.h>
int putc(int c, FILE *fp);
int fputc(int c, FILE *fp);
int putchar(int c);
每次一行函数
#include <stdio.h>
char *fgets(char *restrict buf, int n, FILE
*restrict fp);
char *gets(char *buf);
#include <stdio.h>
int fputs(const char *restrict str, FILE *restrict
fp);
int puts(const char *str);
二进制读写
#include <stdio.h>
size_t fread(void *restrict ptr, size_t size,
size_t nobj,
FILE *restrict fp);
size_t fwrite(const void *restrict ptr, size_t
size, size_t nobj,
FILE *restrict fp);
5.定位流
#include <stdio.h>
long ftell(FILE *fp);
Returns: current file position indicator if OK, 1L on error
int fseek(FILE *fp, long offset, int whence);
Returns: 0 if OK, nonzero on error
void rewind(FILE *fp);
#include <stdio.h>
off_t ftello(FILE *fp);
Returns: current file position indicator if OK, (off_t)1 on error
int fseeko(FILE *fp, off_t offset, int whence);
#include <stdio.h>
int fgetpos(FILE *restrict fp, fpos_t *restrict pos);
int fsetpos(FILE *fp, const fpos_t *pos);
6.格式化输出和输入
格式化输出
#include <stdio.h>
int printf(const char *restrict format, ...);
int fprintf(FILE *restrict fp, const char
*restrict format, ...);
format说明
%[flags][fldwidth][precision][lenmodifier]convtype
四种格式函数变体
#include <stdarg.h>
#include <stdio.h>
int vprintf(const char *restrict format, va_list arg);
int vfprintf(FILE *restrict fp, const char
*restrict format,
va_list arg);
Both return: number of characters output if OK, negative value if output error
[View full width]
int vsprintf(char *restrict buf, const char
*restrict format,
va_list arg);
int vsnprintf(char *restrict buf, size_t n,
const char *restrict format, va_list
arg);
Both return: number of characters output if OK, negative value if output error
[View full width]
int sprintf(char *restrict buf, const char
*restrict format, ...);
int snprintf(char *restrict buf, size_t n,
const char *restrict format, ...);
格式化输入
#include <stdio.h>
int scanf(const char *restrict format, ...);
int fscanf(FILE *restrict fp, const char *restrict
format, ...);
int sscanf(const char *restrict buf, const char
*restrict format,
...);
#include <stdarg.h>
#include <stdio.h>
int vscanf(const char *restrict format, va_list arg);
int vfscanf(FILE *restrict fp, const char
*restrict format,
va_list arg);
int vsscanf(const char *restrict buf, const char
*restrict format,
va_list arg);
7.临时文件
两个函数帮助创建临时文件
#include <stdio.h>
char *tmpnam(char *ptr);
Returns: pointer to unique pathname
FILE *tmpfile(void);
例:
#include "apue.h"
int
main(void)
{
char name[L_tmpnam], line[MAXLINE];
FILE *fp;
printf("%s\n", tmpnam(NULL)); /* first temp name */
tmpnam(name); /* second temp name */
printf("%s\n", name);
if ((fp = tmpfile()) == NULL) /* create temp file */
err_sys("tmpfile error");
fputs("one line of output\n", fp); /* write to temp file */
rewind(fp); /* then read it back */
if (fgets(line, sizeof(line), fp) == NULL)
err_sys("fgets error");
fputs(line, stdout); /* print the line we wrote */
exit(0);
}
#include <stdio.h>
char *tempnam(const char *directory, const char
*prefix);
#include <stdlib.h>
int mkstemp(char *template);
例:
#include "apue.h"
int
main(int argc, char *argv[])
{
if (argc != 3)
err_quit("usage: a.out <directory> <prefix>");
printf("%s\n", tempnam(argv[1][0] != ' ' ? argv[1] : NULL,
argv[2][0] != ' ' ? argv[2] : NULL));
exit(0);
}
freopen函数清除一个流的定向,fwide设置流的定向
#include <stdio.h>
#include <wchar.h>
int fwide(FILE *fp, int mode);
如果mode的参数值为负,fwide将试图使指定的流是字节定向的。
如果mode的参数值为正,fwide将试图使指定的流是宽定向的。
如果mode的参数值为0,fwide将不试图设置流的定向, 但返回标识该流定向的值。
2.缓冲
标准IO提供了三种类型的缓冲:
全缓冲
行缓冲
不带缓冲
有两个函数可以更改缓冲类型
#include <stdio.h>
void setbuf(FILE *restrict fp, char *restrict buf);
int setvbuf(FILE *restrict fp, char *restrict buf,
int mode,
size_t size);
任何时候我们都可以强制冲洗一个流
#include <stdio.h>
int fflush(FILE *fp);
3.打开流
#include <stdio.h>
FILE *fopen(const char *restrict pathname, const
char *restrict type);
FILE *freopen(const char *restrict pathname, const
char *restrict type,
FILE *restrict fp);
FILE *fdopen(int filedes, const char *type);
type参数指定对IO流的读、写方式
r or rb 为读而打开
w or wb 把文件截短至0,或为写而打开
a or ab 添加,为在文件尾写而打开,或为写而创建
r+ or r+b or rb+ 为读和写而打开
w+ or w+b or wb+ 把文件截短至0长,或为读和写而打开
a+ or a+b or ab+ 为在文件尾读和写而打开或创建
4.读写流
一次读一个字符
#include <stdio.h>
int getc(FILE *fp);
int fgetc(FILE *fp);
int getchar(void);
不管是出错还是到达文件尾端,这三个函数都返回同样的值。为了区分这两种情况必须用下面两个函数
#include <stdio.h>
int ferror(FILE *fp);
int feof(FILE *fp);
清除标志
void clearerr(FILE *fp);
从流中读取数据后,可以调用ungetc将字符再压送回流中
#include <stdio.h>
int ungetc(int c, FILE *fp);
每次输出一个字符的函数
#include <stdio.h>
int putc(int c, FILE *fp);
int fputc(int c, FILE *fp);
int putchar(int c);
每次一行函数
#include <stdio.h>
char *fgets(char *restrict buf, int n, FILE
*restrict fp);
char *gets(char *buf);
#include <stdio.h>
int fputs(const char *restrict str, FILE *restrict
fp);
int puts(const char *str);
二进制读写
#include <stdio.h>
size_t fread(void *restrict ptr, size_t size,
size_t nobj,
FILE *restrict fp);
size_t fwrite(const void *restrict ptr, size_t
size, size_t nobj,
FILE *restrict fp);
5.定位流
#include <stdio.h>
long ftell(FILE *fp);
Returns: current file position indicator if OK, 1L on error
int fseek(FILE *fp, long offset, int whence);
Returns: 0 if OK, nonzero on error
void rewind(FILE *fp);
#include <stdio.h>
off_t ftello(FILE *fp);
Returns: current file position indicator if OK, (off_t)1 on error
int fseeko(FILE *fp, off_t offset, int whence);
#include <stdio.h>
int fgetpos(FILE *restrict fp, fpos_t *restrict pos);
int fsetpos(FILE *fp, const fpos_t *pos);
6.格式化输出和输入
格式化输出
#include <stdio.h>
int printf(const char *restrict format, ...);
int fprintf(FILE *restrict fp, const char
*restrict format, ...);
format说明
%[flags][fldwidth][precision][lenmodifier]convtype
四种格式函数变体
#include <stdarg.h>
#include <stdio.h>
int vprintf(const char *restrict format, va_list arg);
int vfprintf(FILE *restrict fp, const char
*restrict format,
va_list arg);
Both return: number of characters output if OK, negative value if output error
[View full width]
int vsprintf(char *restrict buf, const char
*restrict format,
va_list arg);
int vsnprintf(char *restrict buf, size_t n,
const char *restrict format, va_list
arg);
Both return: number of characters output if OK, negative value if output error
[View full width]
int sprintf(char *restrict buf, const char
*restrict format, ...);
int snprintf(char *restrict buf, size_t n,
const char *restrict format, ...);
格式化输入
#include <stdio.h>
int scanf(const char *restrict format, ...);
int fscanf(FILE *restrict fp, const char *restrict
format, ...);
int sscanf(const char *restrict buf, const char
*restrict format,
...);
#include <stdarg.h>
#include <stdio.h>
int vscanf(const char *restrict format, va_list arg);
int vfscanf(FILE *restrict fp, const char
*restrict format,
va_list arg);
int vsscanf(const char *restrict buf, const char
*restrict format,
va_list arg);
7.临时文件
两个函数帮助创建临时文件
#include <stdio.h>
char *tmpnam(char *ptr);
Returns: pointer to unique pathname
FILE *tmpfile(void);
例:
#include "apue.h"
int
main(void)
{
char name[L_tmpnam], line[MAXLINE];
FILE *fp;
printf("%s\n", tmpnam(NULL)); /* first temp name */
tmpnam(name); /* second temp name */
printf("%s\n", name);
if ((fp = tmpfile()) == NULL) /* create temp file */
err_sys("tmpfile error");
fputs("one line of output\n", fp); /* write to temp file */
rewind(fp); /* then read it back */
if (fgets(line, sizeof(line), fp) == NULL)
err_sys("fgets error");
fputs(line, stdout); /* print the line we wrote */
exit(0);
}
#include <stdio.h>
char *tempnam(const char *directory, const char
*prefix);
#include <stdlib.h>
int mkstemp(char *template);
例:
#include "apue.h"
int
main(int argc, char *argv[])
{
if (argc != 3)
err_quit("usage: a.out <directory> <prefix>");
printf("%s\n", tempnam(argv[1][0] != ' ' ? argv[1] : NULL,
argv[2][0] != ' ' ? argv[2] : NULL));
exit(0);
}
发表评论
-
UNIX网络编程(1)-简介
2011-10-06 17:31 7921.bzero函数 bzero 等同于memset(void ... -
UNIX编程(15)-进程间通信
2011-08-07 12:09 1122. 管道 #include <un ... -
UNIX编程(14)-高级IO
2011-08-03 21:36 14171.非阻塞IO 对于一个给定的描述符有两种方法对其指定非阻塞 ... -
UNIX编程(13)-守护进程
2011-08-02 21:59 9601.守护进程的编程规则 1)用umask将文件模式创建屏蔽字 ... -
UNIX编程(12)-线程控制
2011-07-27 15:26 9471.线程限制 某些系统有线程的限制,可以通过sysconf函 ... -
UNIX编程(11)-线程
2011-07-27 14:34 9801.线程标识 每个线程都有一个线程ID,线程ID只在它所属的 ... -
UNIX编程(10)-信号
2011-07-20 21:18 10291.signal函数 #include ... -
UNIX编程(9)-进程关系
2011-07-12 14:41 11521.终端登录 2.网络登录 3.进程组 ... -
UNIX编程(8)-进程控制
2011-07-09 11:37 12041.进程标识符 每个进程 ... -
UNIX编程(7)-进程环境
2011-07-01 15:07 9041.main 函数 c程序总是从main函数开始执行,当内核 ... -
UNIX编程(6)-系统数据文件和信息
2011-06-28 16:35 11971.口令文件 口令文件存储在/etc/passwd中,是一个A ... -
UNIX编程(4)-文件和目录
2011-06-23 16:56 12781.stat,fstat,lstat函数 #include & ... -
UNIX编程(3)-文件IO
2011-06-21 17:45 14601.open函数 #include <fcntl.h&g ... -
UNIX编程(2)-UNIX标准化
2011-06-15 11:41 7181.ISO c 2.IEEE POSIX 3.Single U ... -
UNIX编程(1)-基础知识
2011-06-15 10:54 8391.登陆名 登陆名放在/etc ...
相关推荐
《UNIX环境高级编程》是一本深入探讨UNIX系统编程的电子书,共分为23个部分,涵盖19章。在这一章中,作者主要讲解了标准I/O库,这是一个在多个操作系统上广泛实现的库,由ANSI C标准定义。标准I/O库的设计目的是简化...
《TCP/IP 详解》(3卷),《UNIX网络编程》(2卷)参考书2:《Linux系统编程》RobertLoVe [美] 参考书3:《Linux/UNIX系统编
`protosw`结构体(如图17-5所示)则包含了每个协议的操作函数指针,用于处理各种请求,如PRU_ATTACH、PRU_DETACH、PRU_BIND和PRU_CONNECT等。 17.4 至17.10 描述了Unix域协议控制块(unp PCB)的细节,以及各个函数...
标题 "PyPI 官网下载 | sphinxcontrib-drawio-0.0.7.tar.gz" 暗示我们讨论的是一个在Python Package Index (PyPI) 上发布的软件包,名为`sphinxcontrib-drawio`,版本号为0.0.7。这个包是以tar.gz格式提供的,这是...
网络编程API标准IEEE POSIX 1003.1g(也称为POSIX.1g)中定义了对Unix域协议的支持,使用地址族AF_LOCAL(或PF_LOCAL),协议族为PF_LOCAL,替代了传统的AF_UNIX,使得这种协议不仅限于Unix系统,也扩展到了遵循...
《PyPI官网下载:ie-a-ia-io-0.1.2.tar.gz——探索Python库的奥秘》 PyPI(Python Package Index)是Python世界中的一个重要组成部分,它是Python开发者分享和获取开源软件包的中心仓库。PyPI官网提供了一个方便的...
"commons-io-2.8.0.rar"是一个包含 Commons IO 库版本2.8.0的压缩包文件,便于开发者在项目中引用和使用。 在 Commons IO 中,我们可以找到许多有用的类和方法,这些在处理文件、流、字符集转换、读写操作等方面...
1. **标准I/O库编程**:在UNIX系统中,标准I/O库(通常称为stdio.h库)提供了一系列函数,如fopen、fclose、fread、fwrite等,用于文本和二进制文件的读写操作。这些函数封装了低级的系统调用,简化了文件处理过程,...
描述中提到的"platformio-3.2.1.tar.gz"是一个典型的Unix/Linux风格的归档文件,使用gzip压缩算法。这种格式在开源软件分发中非常常见,因为它能有效减小文件大小,便于传输和存储。解压后,用户将能够访问到...
这里采用的是`select`模型,它是早期Unix系统中广泛使用的异步IO模型。`select`函数允许程序监控多个文件描述符(FDs),当这些FDs中的任何一个准备就绪时(即有数据可读或可写),`select`会返回,从而使程序能够...
"07-fileio.rar"这个压缩包文件很可能包含了一本关于Linux和UNIX系统编程的手册的源码,这为我们深入学习这两个操作系统的I/O机制提供了宝贵的资源。下面,我们将详细探讨Linux和UNIX系统中的文件I/O。 1. **文件I/...
《PyPI官网下载 | nionswift-io-0.15.0.tar.gz:深入了解Python库的使用与管理》 PyPI(Python Package Index),全称为Python Package Index,是Python编程语言的官方软件仓库,提供了丰富的第三方库供开发者下载...
在Perl或其他编程语言中,IO-Compress-Base库提供了方便的API,使开发者能够创建和读取.zip文件。 3. **bzip2格式**:bzip2是一种高效的无损压缩算法,其压缩率通常高于传统的gzip。然而,它的压缩和解压缩速度较慢...
### Java语言编程-IO体系知识点概述 #### 一、引言 Java的IO体系是Java编程中的重要组成部分,它提供了丰富的API用于实现文件操作、网络通信等功能。本篇将详细介绍Java IO体系的基础概念、核心类及接口,并通过...
UNIX环境下的IO库包括标准输入输出库,如,以及提供底层文件操作和进程控制的库,如。这些库是进行UNIX系统编程的基础工具。使用标准输入输出库,可以通过文件描述符STDIN(标准输入)和STDOUT(标准输出)来读写...
《高级网络编程》是东南大学陶军教授主讲的一门课程,主要围绕UNIX网络编程的套接字(Socket)API进行深入讲解。这门课程旨在帮助学生和IT专业人士掌握网络通信的核心技术,以便设计和实现高效、可靠的网络应用程序...
本书主要介绍了UNIX系统下的编程技术,强调了使用C语言进行系统编程的方法,是学习Linux和UNIX编程人员的必备书籍。 书中系统地讲解了UNIX系统编程的方方面面,包括文件和目录的操作、标准I/O库、系统数据文件和...
根据提供的文件信息,我们可以从标题、描述以及部分可见的内容中提取出有关Unix编程环境的关键知识点。下面将对这些知识点进行详细的阐述。 ### Unix编程环境概述 #### 1. **Unix系统简介** - **起源与历史**:...