`
lobin
  • 浏览: 425611 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

C 第2050章: 输入输出

 
阅读更多

输入输出相关部分主要通过标准库中提供的标准函数来实现。这些标准函数主要都在stdio.h这个头文件中。这些函数基本都以f开头,v开头,vf开头,s开头,或者sn开头,带printf,scanf,get,put等标识的函数,主要用来对内存,buffer,标准输入输出,文件等操作。

 

标准库中并没有提供对网络,设备或者串并口等底层的输入输出操作。这些基本都需要调用到系统函数,比如linux下的系统函数,系统调用等,比如windows下的Win API。

输入输出

即我们常说的IO操作。

 

主要包括

1、标准输入输出

2、文件读写

3、网络读写

4、设备读写

 

还有就是对内存,buffer的操作,这相当于对内存,buffer进行IO操作。这有时候对内存,buffer进行操作的时候非常方便,直接操作一块内存,而不像语言层面上通过变量或者指针去操作内存。

 

标准输入输出

写道
C 第2100章: 标准输入输出
https://www.iteye.com/blog/lobin-2517062

 

 

文件读写

 

读操作

int fscanf ( FILE * stream, const char * format, ... );

char * fgets ( char * str, int num, FILE * stream );

 

通过指定stdin可以实现标准输入。

 

写操作

int fprintf(FILE * stream, const char *format, ...);

int vfprintf(FILE *stream, const char *format, va_list arg);

 

通过指定stdout实现标准输出。

 

 

日志

日志主要是打印输出,最简单的是将日志信息直接打印到控制台上。我们通常会将日志输出到日志文件中,甚至还可以输出到设备,管道,网络中去,包括其他任何地方,以及以流的形式输出进行处理。对日志进行分析,以便对系统运行进行追踪,分析和诊断,为故障分析诊断提供有力依据。

 

#if ! defined(LOG)
#define LOG

#define __LO0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0G__(F, L, FORMAT, ARGS...) \
do {                                      \
  printf(F ":" #L " " FORMAT "\n", ARGS); \
} while (0)

#define LO0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0G(F, L, FORMAT, ARGS...)     \
  __LO0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0G__(F, L, FORMAT, ARGS)

#define __LOGN__(FORMAT, ARGS...)         \
  LO0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0G(__FILE__, __LINE__, FORMAT, ARGS)

#define LOG0(S) __LOGN__("%s", S)
#define LOGN(FORMAT, ARGS...) __LOGN__(FORMAT, ARGS)

#endif

 

 

LOG0("this is log 0");
LOGN("this is log n, arg0=%d, arg1=%u, arg2=%c, arg3=%s", 100, 200, 'a', "this is a string");


static_function_test2.c:7 this is log 0
static_function_test2.c:8 this is log n, arg0=100, arg1=200, arg2=a, a
rg3=this is a string

 

 

 

 

 

 

 

 

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics