`

Linux/Unix C 编程 标准I/O函数(3):格式化输入输出函数

阅读更多
#include <stdio.h>
#include <stdarg.h>

格式化输入:
int scanf(const char *fmt, ...);
int sscanf(const char *buf, const char *fmt, ...);
int fscanf(FILE *fp, const char *fmt, ...);
int vscanf(const char *fmt, va_list arg);
int vsscanf(const char *buf, const char *fmt, va_list arg);
int vfscanf(FILE *fp, const char *fmt, va_list arg);

格式化输出:
int printf(const char *fmt, ...);
int sprintf(char *buf, const char *fmt, ...);
int snprintf(char *buf, size_t n, const char *fmt, ...);
int fprintf(FILE *fp, const char *fmt, ...);
int vprintf(const char *fmt, va_list arg);
int vsprintf(char *buf, const char *fmt, va_list arg);
int vsnprintf(char *buf, size_t n, const char *fmt, va_list arg);
F0int vfprintf(FILE *fp, const char *fmt, va_list arg);

其中带 v 开头的函数是将可变参数表(...)换成 va_list 类型,其它函数就不说了。
本来是想学习一下使用可变参数函数的,可变参数表用到2个函数:
va_start
va_end

//test.c

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

#define MAXLINE 4096

void w_log(char *str, ...)

FILE *fp;
char szfilename[MAXLINE];
char szstr[MAXLINE];
time_t now;
struct tm t;
va_start(vargs, str);
vsnprintf(szstr, MAXLINE, str, vargs);
va_end(vargs);

time(&now);
localtime_r(&now, &t);
sprintf(szfilename, "./w_log.%4d%02d%02d", t.tm_year+1900, t.tm_mon+1, t.tm_mday);
fp = fopen(szfilename, "a+");
if (fp == NULL)
return;
fprintf(fp, "[%4d-%02d-%02d %02d:%02d:%02d] %s\n", t.tm_year+1900, t.tm_mon+1, t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec, szstr);
fclose(fp);
}
void main()
{
int i;
char sztest[]="gogo args";
i = 1111;
w_log("testtest......");
w_log("%d_%s", 10, sztest);
w_log("%d,%s,%d,%s", 10, sztest, i, "hahaha...");
return;
}
--------------------------------------------------------------------------
结果:$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

[sand@localhost testfmt]$ gcc -o test test.c
[sand@localhost testfmt]$ ./test
[sand@localhost testfmt]$ cat w_log.20090702
[2009-07-02 16:24:04] testtest......
[2009-07-02 16:24:04] 10_gogo args
[2009-07-02 16:24:04] 10,gogo args,1111,hahaha...
[sand@localhost testfmt]$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
分享到:
评论

相关推荐

    LINUX与UNIX SHELL编程指南(很全)

    5.6 标准输入、输出和错误 40 5.6.1 标准输入 40 5.6.2 标准输出 40 5.6.3 标准错误 40 5.7 文件重定向 40 5.7.1 重定向标准输出 41 5.7.2 重定向标准输入 42 5.7.3 重定向标准错误 42 5.8 结合使用标准输出和标准...

    Linux与unix shell编程指南

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell ...

    UNIX环境高级编程

    5.11 格式化I/O 103 5.11.1 格式化输出 103 5.11.2 格式化输入 103 5.12 实现细节 104 5.13 临时文件 105 5.14 标准I/O的替代软件 108 5.15 小结 108 习题 108 第6章 系统数据文件和信息 110 6.1 引言 110 6.2 口令...

    unix环境编程电子书

    120 5.11 格式化I/O 121 5.12 实现细节 125 5.13 临时文件 127 5.14 标准I/O的替代软件 130 5.15 小结 130 习题 130 第6章 系统数据文件和信息 133 6.1 引言 133 6.2 口令文件 133 6.3 阴影口令 ...

    Unix高级编程 pdf

    5.11 格式化I/O 103 5.11.1 格式化输出 103 5.11.2 格式化输入 103 5.12 实现细节 104 5.13 临时文件 105 5.14 标准I/O的替代软件 108 5.15 小结 108 习题 108 第6章 系统数据文件和信息 110 6.1 引言 110 ...

    UNIX环境高级编程第二版

    5.11 格式化I/O 103 5.11.1 格式化输出 103 5.11.2 格式化输入 103 5.12 实现细节 104 5.13 临时文件 105 5.14 标准I/O的替代软件 108 5.15 小结 108 习题 108 第6章 系统数据文件和信息 110 6.1 引言 110 6.2 口令...

    UNIX环境高级编程(第五章)

    第5章 标准I/O库 91 5.1 引言 91 5.2 流和FILE对象 91 ...5.11 格式化I/O 103 5.11.1 格式化输出 103 5.11.2 格式化输入 103 5.12 实现细节 104 5.13 临时文件 105 5.14 标准I/O的替代软件 108 5.15 小结 108 习题 108

    UNIX环境高级编程 pdf格式

    5.11 格式化I/O 103 5.12 实现细节 104 5.13 临时文件 105 5.14 标准I/O的替代软件 108 5.15 小结 108 习题 108 第6章 系统数据文件和信息 110 6.1 引言 110 6.2 口令文件 110 6.3 阴影口令 112 6.4 组文件 113 6.5 ...

    UNIX环境高级编程.pdf

    5.11 格式化I/O 103 5.11.1 格式化输出 103 5.11.2 格式化输入 103 5.12 实现细节 104 5.13 临时文件 105 5.14 标准I/O的替代软件 108 5.15 小结 108 习题 108 第6章 系统数据文件和信息 110 6.1 引言 110 6.2 口令...

    UNIX环境高级编程_第二版中文

    5.11 格式化I/O  5.12 实现细节  5.13 临时文件  5.14 标准I/O的替代软件  5.15 小结  习题  第6章 系统数据文件和信息  6.1 引言  6.2 口令文件  6.3 阴影口令  6.4 组文件  6.5 附加组ID ...

    Linux与Unix Shell编程指南(PDF格式,共30章)

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...

    UNIX环境高级编程(PDF)

    本书全面介绍了UNIX系统的程序设计界面—系统调用界面和标准C库提供的许多函数。 本书的前15章着重于理论知识的阐述,主要内容包括UNIX文件和目录、进程环境、进程控制、 进程间通信以及各种I/O。在此基础上,分别...

    LINUX与UNIX SHELL编程指南 高清PDF

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...

    UNIX环境高级编程(中文版+英文版+源代码)

    5.11 格式化I/O 103 5.11.1 格式化输出 103 5.11.2 格式化输入 103 5.12 实现细节 104 5.13 临时文件 105 5.14 标准I/O的替代软件 108 5.15 小结 108 习题 108 第6章 系统数据文件和信息 110 6.1 引言 110 6.2 口令...

Global site tag (gtag.js) - Google Analytics