【问题标题】:snprintf occur different Performancesnprintf 出现不同的性能
【发布时间】:2022-06-10 20:03:29
【问题描述】:

代码如下:

while((nread = read(fd1,read_buf,sizeof(read_buf)))){                                           
    int ret = snprintf(write_buf,sizeof(write_buf),"%s",read_buf);                                      
    int vprintf(const char *format, va_list ap);
    if(ret < 0){                                                                                 │       int  vfprintf(FILE  *stream,  const  char  *format,
        perror("snprintf failed");                                                               │       va_list ap);
    }else{                                                                                       │       int vsprintf(char *str, const char *format, va_list
        write(fd2,write_buf,strlen(write_buf));                                                  │       ap);
    }                                                                                            │       int vsnprintf(char *str, size_t  size,  const  char
    printf("strlen:%d, nread:%d\n",strlen(write_buf),nread);                                     │       *format, va_list ap);
    bzero(write_buf,sizeof(write_buf));                                                          │   Feature  Test  Macro  Requirements  for glibc (see fea‐
    bzero(read_buf,sizeof(read_buf));                                                            │   ture_test_macros(7)):
}  

如果我不使用-O2,第二个循环strlen为11,nread为10;但是如果我使用 gcc -O2,strlen 是 10,nread 是 10。我不知道为什么,请给我一个答案。谢谢!

【问题讨论】:

标签: c gcc printf


猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-30
相关资源
最近更新 更多