low level I/O和stream I/O

本文详细介绍了lowlevel I/O和stream I/O的区别,包括stdin和STDIN_FILENO的不同层级、open与fopen的功能差异及其应用场景,同时对比了缓冲文件系统与非缓冲文件系统的特性,并解释了NULL、EOF等特殊符号的意义。
low level I/O和stream I/O
2011年03月26日
  stdin和STDIN_FILENO的区别:
  层次不一样。STDIN 属于标准库处理的输入流,其声明为 FILE 型的,对应的函数前面都有f开头,如fopen/fread/fwrite/fclose 标准库调用等,在 。
  STDIN_FILENO属于系统API接口库,其声明为 int 型,是一个打开文件句柄,对应的函数主要包括 open/read/write/close 等系统级调用。在 。
  标准库内封装了系统 API 调用,如 fread 内部实现调用 read。 open和fopen的区别: 1.缓冲文件系统
  缓冲文件系统的特点是:在内存开辟一个"缓冲区",为程序中的每一个文件使用,当执行读文件的操作时,从磁盘文件将数据先读入内存"缓冲区", 装满后再从内存"缓冲区"依此读入接收的变量。执行写文件的操作时,先将数据写入内存"缓冲区",待内存"缓冲区"装满后再写入文件。由此可以看出,内存 "缓冲区"的大小,影响着实际操作外存的次数,内存"缓冲区"越大,则操作外存的次数就少,执行速度就快、效率高。一般来说,文件"缓冲区"的大小随机器 而定。
  fopen, fclose, fread, fwrite, fgetc, fgets, fputc, fputs, freopen, fseek, ftell, rewind等
  2.非缓冲文件系统
  缓冲文件系统是借助文件结构体指针来对文件进行管理,通过文件指针来对文件进行访问,既可以读写字符、字符串、格式化数据,也可以读写二进制数 据。非缓冲文件系统依赖于操作系统,通过操作系统的功能对文件进行读写,是系统级的输入输出,它不设文件结构体指针,只能读写二进制文件,但效率高、速度 快,由于ANSI标准不再包括非缓冲文件系统,因此建议大家最好不要选择它。open, close, read, write, getc, getchar, putc, putchar 等
  后者属于低级IO,前者是高级IO。
  后者返回一个文件描述符(用户程序区的),前者返回一个文件指针。
  后者无缓冲,前者有缓冲。
  NULL EOF NUL '\0'区别:
  NULL: 定义为0或0L或(void *)0,用于指示一个指针值是空,即什么都不指;
  '\0': 用且只用字符串结束符;
  NUL : 0x00,0值字符,可以用于结束ASCII字符串,和'\0'类似,但是在c/c++中没有定义,如果要使用的话,需要自定义为 #define NUL '\0';
  EOF :通常定义为-1, 文件结束符标志。在文本文件中,数据是以字符的ASCⅡ代码值的形式存放,ASCⅡ代码的范围是0到255,不可能出现-1,因此可以用EOF作为文件结束标志。
  当把数据以二进制形式存放到文件中时,就会有-1值的出现,因此不能采用EOF作为二进制文件的结束标志。为解决这一个问题,ASCI C提供一个feof函数,用来判断文件是否结束。feof函数既可用以判断二进制文件又可用以判断文本文件。
  fprintf(stderr,"error and exit!\n");
  fprintf(FILE ,"text content");
  fread();
  fwrite();
  feof(FILE)使用注意:
  //main.c linux 下编译通过。 int main(void) { FILE *in, *out; int ch; if ((in = fopen("./input.txt", "r"))== NULL) //input.txt must exist in current directory. { fprintf(stderr, "Cannot open inputfile\n"); exit(0); } if((out=fopen("./output.txt","w"))==NULL) { fprintf(stderr,"Can not open the file.\n"); exit(0); } while(1) { ch=fgetc(in); if(ch == -1) break; fprintf(stdout,"The ASC of char %c is %d\n ",ch,ch); fputc(ch,out); } fclose(in); fclose(out); return 0; } 与EOF的区别
  在stdio.h中可以看到如下定义: #define EOF (-1) #define _IOEOF 0x0010 #define feof(_stream) ((_stream)->_flag & _IOEOF) int c; while(!feof(fp)) { c = fgetc(fp); printf("%X\n", c); } 会发现多输出了一个FF,原因就是在读完最后一个字符后,fp->flag仍然没有被置为_IOEOF,因而feof()仍然没有探测到文件结尾。直到再次调用fgetc()执行读操作,feof()才能探测到文件结尾。这样就多输出了一个-1(即FF)。
  正确的写法应该是: int c; c = fgetc(fp); while(!feof(fp)) { printf("%X\n", c); c = fgetc(fp); } feof()可以用EOF代替吗?不可以。fgetc返回-1时,有两种情况:读到文件结尾或是读取错误。因此我们无法确信文件已经结束, 因为可能是读取错误! 这时我们需要feof()。 读写I/O stream #include int getc(FILE *fp); int fgetc(FILE *fp); int getchar(void); //success:return next char,if end or error return EOF getchar = getc(stdin) 说明stdin ,stderrr,stdout是 FILE *
  int ferror(FILE *fp);
  int feof( FILE *fp);
  若条件为真则范围非零值,否则返回0
  输出函数: #include int putc(int c, FILE *fp); int fputc(int c ,FIle *fp); int putchar(int c);
make[6]: Entering directory '/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/fv_focus_test' mips-linux-uclibc-gnu-gcc -Os -pipe -march=mips32r2 -g -ffunction-sections -fdata-sections -Wall -Werror -DWHITE_LAMP_SUPPORT -DCONFIG_WTL_GPIO_ACTIVE_LOW -DSENSOR_FRAME_RATE=100 -DSENSOR_FRAME_RATE_DEN=7 -DPTZ_SUPPORT -DAUDIO_DATA_MAX_THRESHOLD=12000 -DT31X_MPP -DAUDIO_ENABLE -DAUDIO_OUTPUT -DVIDEO_ENABLE -DJPEG_STREAM_ENABLE -DAUDIO_PLAY_AEC_SUPPORT -DINCREASE_VBR_BITRATE -DWHITE_LAMP_SUPPORT -DDN_SWITCH_CUSTOM_AREA_COMPENSATION -DDN_SWITCH_IR_CUT_DOUBLE_GPIO_CONTROL -DOSD_PIXEL_FORMAT_I2_SUPPORT -DAEC_DELAY_CLOSE_REF -DTP_AEC_CNG_MODE=0 -DTP_AEC_ECHO_MODE=1 -DTP_AEC_NS_MODE=1 -DFORBID_CAMERA_UNINIT_WHITE_PWM -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/usr/include -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/include -I/home/wyl/NVMP/nvmp/../sdk/soc/t31x/uclibc-toolchain-0.9.33/mips-gcc472-glibc216-64bit/mips-linux-gnu/libc/uclibc/usr/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/include -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/usr/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/avdc/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/camera/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/speaker/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/decrypt/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/common -ffunction-sections -fdata-sections -c -o fv_focus_test.o fv_focus_test.c mips-linux-uclibc-gnu-gcc -Os -pipe -march=mips32r2 -g -ffunction-sections -fdata-sections -Wall -Werror -DWHITE_LAMP_SUPPORT -DCONFIG_WTL_GPIO_ACTIVE_LOW -DSENSOR_FRAME_RATE=100 -DSENSOR_FRAME_RATE_DEN=7 -DPTZ_SUPPORT -DAUDIO_DATA_MAX_THRESHOLD=12000 -DT31X_MPP -DAUDIO_ENABLE -DAUDIO_OUTPUT -DVIDEO_ENABLE -DJPEG_STREAM_ENABLE -DAUDIO_PLAY_AEC_SUPPORT -DINCREASE_VBR_BITRATE -DWHITE_LAMP_SUPPORT -DDN_SWITCH_CUSTOM_AREA_COMPENSATION -DDN_SWITCH_IR_CUT_DOUBLE_GPIO_CONTROL -DOSD_PIXEL_FORMAT_I2_SUPPORT -DAEC_DELAY_CLOSE_REF -DTP_AEC_CNG_MODE=0 -DTP_AEC_ECHO_MODE=1 -DTP_AEC_NS_MODE=1 -DFORBID_CAMERA_UNINIT_WHITE_PWM -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/usr/include -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/include -I/home/wyl/NVMP/nvmp/../sdk/soc/t31x/uclibc-toolchain-0.9.33/mips-gcc472-glibc216-64bit/mips-linux-gnu/libc/uclibc/usr/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/include -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/usr/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/avdc/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/camera/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/speaker/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/decrypt/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/common -ffunction-sections -fdata-sections -c -o fv_data_model.o fv_data_model.c make[6]: Leaving directory '/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/fv_focus_test' if [ -f /home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/common/libmppcommon.a ]; then \ cp -fpR /home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/common/libmppcommon.a /home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/usr/lib/nvmp/libs/; \ fi make[5]: Leaving directory '/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp' mips-linux-uclibc-gnu-gcc -Os -pipe -march=mips32r2 -g -ffunction-sections -fdata-sections -Wall -Werror -DWHITE_LAMP_SUPPORT -DCONFIG_WTL_GPIO_ACTIVE_LOW -DSENSOR_FRAME_RATE=100 -DSENSOR_FRAME_RATE_DEN=7 -DPTZ_SUPPORT -DAUDIO_DATA_MAX_THRESHOLD=12000 -DT31X_MPP -DAUDIO_ENABLE -DAUDIO_OUTPUT -DVIDEO_ENABLE -DJPEG_STREAM_ENABLE -DAUDIO_PLAY_AEC_SUPPORT -DINCREASE_VBR_BITRATE -DWHITE_LAMP_SUPPORT -DDN_SWITCH_CUSTOM_AREA_COMPENSATION -DDN_SWITCH_IR_CUT_DOUBLE_GPIO_CONTROL -DOSD_PIXEL_FORMAT_I2_SUPPORT -DAEC_DELAY_CLOSE_REF -DTP_AEC_CNG_MODE=0 -DTP_AEC_ECHO_MODE=1 -DTP_AEC_NS_MODE=1 -DFORBID_CAMERA_UNINIT_WHITE_PWM -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/usr/include -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/include -I/home/wyl/NVMP/nvmp/../sdk/soc/t31x/uclibc-toolchain-0.9.33/mips-gcc472-glibc216-64bit/mips-linux-gnu/libc/uclibc/usr/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/include -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/usr/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/avdc/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/camera/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/speaker/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/decrypt/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/common -ffunction-sections -fdata-sections -c -o libavdc/libavdc.o libavdc/libavdc.c mips-linux-gnu-ar crus -o libavdc.a ./libavdc/libavdc.o /home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/avdc/mpp_adapter.o /home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/avdc/aeawb.o /home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/avdc/video.o /home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/avdc/video_api.o /home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/avdc/rmem_calc.o /home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/avdc/audio.o /home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/avdc/aec.o mips-linux-uclibc-gnu-gcc -Os -pipe -march=mips32r2 -g -ffunction-sections -fdata-sections -Wall -Werror -DWHITE_LAMP_SUPPORT -DCONFIG_WTL_GPIO_ACTIVE_LOW -DSENSOR_FRAME_RATE=100 -DSENSOR_FRAME_RATE_DEN=7 -DPTZ_SUPPORT -DAUDIO_DATA_MAX_THRESHOLD=12000 -DT31X_MPP -DAUDIO_ENABLE -DAUDIO_OUTPUT -DVIDEO_ENABLE -DJPEG_STREAM_ENABLE -DAUDIO_PLAY_AEC_SUPPORT -DINCREASE_VBR_BITRATE -DWHITE_LAMP_SUPPORT -DDN_SWITCH_CUSTOM_AREA_COMPENSATION -DDN_SWITCH_IR_CUT_DOUBLE_GPIO_CONTROL -DOSD_PIXEL_FORMAT_I2_SUPPORT -DAEC_DELAY_CLOSE_REF -DTP_AEC_CNG_MODE=0 -DTP_AEC_ECHO_MODE=1 -DTP_AEC_NS_MODE=1 -DFORBID_CAMERA_UNINIT_WHITE_PWM -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/usr/include -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/include -I/home/wyl/NVMP/nvmp/../sdk/soc/t31x/uclibc-toolchain-0.9.33/mips-gcc472-glibc216-64bit/mips-linux-gnu/libc/uclibc/usr/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/include -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/usr/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/avdc/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/camera/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/speaker/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/decrypt/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/common -ffunction-sections -fdata-sections -c -o libcamera/libadc.o libcamera/libadc.c mips-linux-uclibc-gnu-gcc -Os -pipe -march=mips32r2 -g -ffunction-sections -fdata-sections -Wall -Werror -DWHITE_LAMP_SUPPORT -DCONFIG_WTL_GPIO_ACTIVE_LOW -DSENSOR_FRAME_RATE=100 -DSENSOR_FRAME_RATE_DEN=7 -DPTZ_SUPPORT -DAUDIO_DATA_MAX_THRESHOLD=12000 -DT31X_MPP -DAUDIO_ENABLE -DAUDIO_OUTPUT -DVIDEO_ENABLE -DJPEG_STREAM_ENABLE -DAUDIO_PLAY_AEC_SUPPORT -DINCREASE_VBR_BITRATE -DWHITE_LAMP_SUPPORT -DDN_SWITCH_CUSTOM_AREA_COMPENSATION -DDN_SWITCH_IR_CUT_DOUBLE_GPIO_CONTROL -DOSD_PIXEL_FORMAT_I2_SUPPORT -DAEC_DELAY_CLOSE_REF -DTP_AEC_CNG_MODE=0 -DTP_AEC_ECHO_MODE=1 -DTP_AEC_NS_MODE=1 -DFORBID_CAMERA_UNINIT_WHITE_PWM -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/usr/include -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/include -I/home/wyl/NVMP/nvmp/../sdk/soc/t31x/uclibc-toolchain-0.9.33/mips-gcc472-glibc216-64bit/mips-linux-gnu/libc/uclibc/usr/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/include -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/usr/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/avdc/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/camera/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/speaker/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/decrypt/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/common -ffunction-sections -fdata-sections -c -o libcamera/libcamera.o libcamera/libcamera.c mips-linux-uclibc-gnu-gcc -Os -pipe -march=mips32r2 -g -ffunction-sections -fdata-sections -Wall -Werror -DWHITE_LAMP_SUPPORT -DCONFIG_WTL_GPIO_ACTIVE_LOW -DSENSOR_FRAME_RATE=100 -DSENSOR_FRAME_RATE_DEN=7 -DPTZ_SUPPORT -DAUDIO_DATA_MAX_THRESHOLD=12000 -DT31X_MPP -DAUDIO_ENABLE -DAUDIO_OUTPUT -DVIDEO_ENABLE -DJPEG_STREAM_ENABLE -DAUDIO_PLAY_AEC_SUPPORT -DINCREASE_VBR_BITRATE -DWHITE_LAMP_SUPPORT -DDN_SWITCH_CUSTOM_AREA_COMPENSATION -DDN_SWITCH_IR_CUT_DOUBLE_GPIO_CONTROL -DOSD_PIXEL_FORMAT_I2_SUPPORT -DAEC_DELAY_CLOSE_REF -DTP_AEC_CNG_MODE=0 -DTP_AEC_ECHO_MODE=1 -DTP_AEC_NS_MODE=1 -DFORBID_CAMERA_UNINIT_WHITE_PWM -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/usr/include -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/include -I/home/wyl/NVMP/nvmp/../sdk/soc/t31x/uclibc-toolchain-0.9.33/mips-gcc472-glibc216-64bit/mips-linux-gnu/libc/uclibc/usr/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/include -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/usr/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/avdc/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/camera/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/speaker/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/decrypt/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/common -ffunction-sections -fdata-sections -c -o libcamera/libimage.o libcamera/libimage.c mips-linux-uclibc-gnu-gcc -Os -pipe -march=mips32r2 -g -ffunction-sections -fdata-sections -Wall -Werror -DWHITE_LAMP_SUPPORT -DCONFIG_WTL_GPIO_ACTIVE_LOW -DSENSOR_FRAME_RATE=100 -DSENSOR_FRAME_RATE_DEN=7 -DPTZ_SUPPORT -DAUDIO_DATA_MAX_THRESHOLD=12000 -DT31X_MPP -DAUDIO_ENABLE -DAUDIO_OUTPUT -DVIDEO_ENABLE -DJPEG_STREAM_ENABLE -DAUDIO_PLAY_AEC_SUPPORT -DINCREASE_VBR_BITRATE -DWHITE_LAMP_SUPPORT -DDN_SWITCH_CUSTOM_AREA_COMPENSATION -DDN_SWITCH_IR_CUT_DOUBLE_GPIO_CONTROL -DOSD_PIXEL_FORMAT_I2_SUPPORT -DAEC_DELAY_CLOSE_REF -DTP_AEC_CNG_MODE=0 -DTP_AEC_ECHO_MODE=1 -DTP_AEC_NS_MODE=1 -DFORBID_CAMERA_UNINIT_WHITE_PWM -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/usr/include -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/include -I/home/wyl/NVMP/nvmp/../sdk/soc/t31x/uclibc-toolchain-0.9.33/mips-gcc472-glibc216-64bit/mips-linux-gnu/libc/uclibc/usr/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/include -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/usr/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/avdc/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/camera/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/speaker/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/decrypt/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/common -ffunction-sections -fdata-sections -c -o libcamera/libosd.o libcamera/libosd.c mips-linux-uclibc-gnu-gcc -Os -pipe -march=mips32r2 -g -ffunction-sections -fdata-sections -Wall -Werror -DWHITE_LAMP_SUPPORT -DCONFIG_WTL_GPIO_ACTIVE_LOW -DSENSOR_FRAME_RATE=100 -DSENSOR_FRAME_RATE_DEN=7 -DPTZ_SUPPORT -DAUDIO_DATA_MAX_THRESHOLD=12000 -DT31X_MPP -DAUDIO_ENABLE -DAUDIO_OUTPUT -DVIDEO_ENABLE -DJPEG_STREAM_ENABLE -DAUDIO_PLAY_AEC_SUPPORT -DINCREASE_VBR_BITRATE -DWHITE_LAMP_SUPPORT -DDN_SWITCH_CUSTOM_AREA_COMPENSATION -DDN_SWITCH_IR_CUT_DOUBLE_GPIO_CONTROL -DOSD_PIXEL_FORMAT_I2_SUPPORT -DAEC_DELAY_CLOSE_REF -DTP_AEC_CNG_MODE=0 -DTP_AEC_ECHO_MODE=1 -DTP_AEC_NS_MODE=1 -DFORBID_CAMERA_UNINIT_WHITE_PWM -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/usr/include -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/include -I/home/wyl/NVMP/nvmp/../sdk/soc/t31x/uclibc-toolchain-0.9.33/mips-gcc472-glibc216-64bit/mips-linux-gnu/libc/uclibc/usr/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/include -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/usr/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/avdc/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/camera/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/speaker/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/decrypt/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/common -ffunction-sections -fdata-sections -c -o libcamera/libcover.o libcamera/libcover.c mips-linux-gnu-ar crus -o libcamera.a ./libcamera/libadc.o ./libcamera/libcamera.o ./libcamera/libimage.o ./libcamera/libosd.o ./libcamera/libcover.o /home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/camera/camera_image.o /home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/camera/camera_osd.o /home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/camera/camera_cover.o /home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/camera/tpcam_osd.o /home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/camera/camera_gpio.o /home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/camera/camera_sar_adc.o mips-linux-uclibc-gnu-gcc -Os -pipe -march=mips32r2 -g -ffunction-sections -fdata-sections -Wall -Werror -DWHITE_LAMP_SUPPORT -DCONFIG_WTL_GPIO_ACTIVE_LOW -DSENSOR_FRAME_RATE=100 -DSENSOR_FRAME_RATE_DEN=7 -DPTZ_SUPPORT -DAUDIO_DATA_MAX_THRESHOLD=12000 -DT31X_MPP -DAUDIO_ENABLE -DAUDIO_OUTPUT -DVIDEO_ENABLE -DJPEG_STREAM_ENABLE -DAUDIO_PLAY_AEC_SUPPORT -DINCREASE_VBR_BITRATE -DWHITE_LAMP_SUPPORT -DDN_SWITCH_CUSTOM_AREA_COMPENSATION -DDN_SWITCH_IR_CUT_DOUBLE_GPIO_CONTROL -DOSD_PIXEL_FORMAT_I2_SUPPORT -DAEC_DELAY_CLOSE_REF -DTP_AEC_CNG_MODE=0 -DTP_AEC_ECHO_MODE=1 -DTP_AEC_NS_MODE=1 -DFORBID_CAMERA_UNINIT_WHITE_PWM -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/usr/include -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/include -I/home/wyl/NVMP/nvmp/../sdk/soc/t31x/uclibc-toolchain-0.9.33/mips-gcc472-glibc216-64bit/mips-linux-gnu/libc/uclibc/usr/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/include -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/usr/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/avdc/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/camera/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/speaker/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/decrypt/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/common -ffunction-sections -fdata-sections -c -o libspeaker/libspeaker.o libspeaker/libspeaker.c mips-linux-gnu-ar crus -o libspeaker.a ./libspeaker/libspeaker.o /home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/speaker/speaker.o mips-linux-gnu-ar crus -o isp_data_model.a /home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/isp_data_model/image_profile_model.o /home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/isp_data_model/audio_profile_model.o /home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/isp_data_model/isp_data_model.o mips-linux-gnu-ar crus -o fv_focus_test.a /home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/fv_focus_test/fv_data_model.o /home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/fv_focus_test/fv_focus_test.o mips-linux-uclibc-gnu-gcc -Os -pipe -march=mips32r2 -g -ffunction-sections -fdata-sections -Wall -Werror -DWHITE_LAMP_SUPPORT -DCONFIG_WTL_GPIO_ACTIVE_LOW -DSENSOR_FRAME_RATE=100 -DSENSOR_FRAME_RATE_DEN=7 -DPTZ_SUPPORT -DAUDIO_DATA_MAX_THRESHOLD=12000 -DT31X_MPP -DAUDIO_ENABLE -DAUDIO_OUTPUT -DVIDEO_ENABLE -DJPEG_STREAM_ENABLE -DAUDIO_PLAY_AEC_SUPPORT -DINCREASE_VBR_BITRATE -DWHITE_LAMP_SUPPORT -DDN_SWITCH_CUSTOM_AREA_COMPENSATION -DDN_SWITCH_IR_CUT_DOUBLE_GPIO_CONTROL -DOSD_PIXEL_FORMAT_I2_SUPPORT -DAEC_DELAY_CLOSE_REF -DTP_AEC_CNG_MODE=0 -DTP_AEC_ECHO_MODE=1 -DTP_AEC_NS_MODE=1 -DFORBID_CAMERA_UNINIT_WHITE_PWM -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/usr/include -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/include -I/home/wyl/NVMP/nvmp/../sdk/soc/t31x/uclibc-toolchain-0.9.33/mips-gcc472-glibc216-64bit/mips-linux-gnu/libc/uclibc/usr/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/include -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/usr/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/avdc/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/camera/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/speaker/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/decrypt/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/common -ffunction-sections -fdata-sections -c -o libjpeg_stream/libjpeg_stream.o libjpeg_stream/libjpeg_stream.c libjpeg_stream/libjpeg_stream.c:680:5: error: conflicting types for 'get_realtime_raw_jpeg' In file included from libjpeg_stream/libjpeg_stream.c:1:0: /home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/usr/include/libjpeg_stream.h:154:5: note: previous declaration of 'get_realtime_raw_jpeg' was here /home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/common/Makefile:12: recipe for target 'libjpeg_stream/libjpeg_stream.o' failed make[4]: *** [libjpeg_stream/libjpeg_stream.o] Error 1 make[4]: Leaving directory '/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp' Makefile:582: recipe for target '/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/.built' failed make[3]: *** [/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/.built] Error 2 make[3]: Leaving directory '/home/wyl/NVMP/nvmp/tp_package/lib/libmpp' package/Makefile:105: recipe for target 'package/tp_package/lib/libmpp/compile' failed make[2]: *** [package/tp_package/lib/libmpp/compile] Error 2 make[2]: Leaving directory '/home/wyl/NVMP/nvmp' package/Makefile:101: recipe for target '/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/stamp/.package_compile' failed make[1]: *** [/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/stamp/.package_compile] Error 2 make[1]: Leaving directory '/home/wyl/NVMP/nvmp' /home/wyl/NVMP/nvmp/include/toplevel.mk:277: recipe for target 'world' failed make: *** [world] Error 2
09-20
mips-linux-uclibc-gnu-gcc -Os -pipe -march=mips32r2 -g -ffunction-sections -fdata-sections -Wall -Werror -DWHITE_LAMP_SUPPORT -DCONFIG_WTL_GPIO_ACTIVE_LOW -DSENSOR_FRAME_RATE=100 -DSENSOR_FRAME_RATE_DEN=7 -DPTZ_SUPPORT -DAUDIO_DATA_MAX_THRESHOLD=12000 -DT31X_MPP -DAUDIO_ENABLE -DAUDIO_OUTPUT -DVIDEO_ENABLE -DJPEG_STREAM_ENABLE -DAUDIO_PLAY_AEC_SUPPORT -DINCREASE_VBR_BITRATE -DWHITE_LAMP_SUPPORT -DDN_SWITCH_CUSTOM_AREA_COMPENSATION -DDN_SWITCH_IR_CUT_DOUBLE_GPIO_CONTROL -DOSD_PIXEL_FORMAT_I2_SUPPORT -DAEC_DELAY_CLOSE_REF -DTP_AEC_CNG_MODE=0 -DTP_AEC_ECHO_MODE=1 -DTP_AEC_NS_MODE=1 -DFORBID_CAMERA_UNINIT_WHITE_PWM -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/usr/include -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/include -I/home/wyl/NVMP/nvmp/../sdk/soc/t31x/uclibc-toolchain-0.9.33/mips-gcc472-glibc216-64bit/mips-linux-gnu/libc/uclibc/usr/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/include -I/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/usr/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/avdc/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/camera/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/speaker/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/decrypt/include -I/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/common -ffunction-sections -fdata-sections -c -o libjpeg_stream/libjpeg_stream.o libjpeg_stream/libjpeg_stream.c libjpeg_stream/libjpeg_stream.c:680:5: error: conflicting types for 'get_realtime_raw_jpeg' In file included from libjpeg_stream/libjpeg_stream.c:1:0: /home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/usr/include/libjpeg_stream.h:154:5: note: previous declaration of 'get_realtime_raw_jpeg' was here /home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/mpp/adapter/common/Makefile:12: recipe for target 'libjpeg_stream/libjpeg_stream.o' failed make[4]: *** [libjpeg_stream/libjpeg_stream.o] Error 1 make[4]: Leaving directory '/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp' Makefile:582: recipe for target '/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/.built' failed make[3]: *** [/home/wyl/NVMP/nvmp/build_dir/target-mips-openwrt-linux-uclibc-c510wv1/libmpp/.built] Error 2 make[3]: Leaving directory '/home/wyl/NVMP/nvmp/tp_package/lib/libmpp' package/Makefile:105: recipe for target 'package/tp_package/lib/libmpp/compile' failed make[2]: *** [package/tp_package/lib/libmpp/compile] Error 2 make[2]: Leaving directory '/home/wyl/NVMP/nvmp' package/Makefile:101: recipe for target '/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/stamp/.package_compile' failed make[1]: *** [/home/wyl/NVMP/nvmp/staging_dir/target-mips-openwrt-linux-uclibc-c510wv1/stamp/.package_compile] Error 2 make[1]: Leaving directory '/home/wyl/NVMP/nvmp' /home/wyl/NVMP/nvmp/include/toplevel.mk:277: recipe for target 'world' failed make: *** [world] Error 2
09-20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值