小编kmm*_*kmm的帖子

如何使用printf显示off_t,nlink_t,size_t和其他特殊类型?

在我的程序中,我统计他们想要的文件并发送数据.stat的字段struct都是特殊类型:

struct stat {
  dev_t     st_dev;     /* ID of device containing file */
  ino_t     st_ino;     /* inode number */
  mode_t    st_mode;    /* protection */
  nlink_t   st_nlink;   /* number of hard links */
  uid_t     st_uid;     /* user ID of owner */
  gid_t     st_gid;     /* group ID of owner */
  dev_t     st_rdev;    /* device ID (if special file) */
  off_t     st_size;    /* total size, in bytes */
  blksize_t st_blksize; /* blocksize for file system I/O */
  blkcnt_t  st_blocks;  /* number …
Run Code Online (Sandbox Code Playgroud)

c linux printf portability

27
推荐指数
1
解决办法
2万
查看次数

getpwnam_r内存泄漏

我使用getpwnam_r来处理程序中的客户端连接.可悲的是,它似乎分配了一个永远不会释放的缓冲区.相关的valgrind输出:


==15774== 536 (104 direct, 432 indirect) bytes in 2 blocks are definitely lost in loss record 1 of 3
==15774==    at 0x4C24CFE: malloc (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==15774==    by 0x5143B5A: nss_parse_service_list (in /lib64/libc-2.10.1.so)
==15774==    by 0x51442E6: __nss_database_lookup (in /lib64/libc-2.10.1.so)
==15774==    by 0x57BE35F: ???
==15774==    by 0x57BF3F6: ???
==15774==    by 0x51014D2: getpwnam_r@@GLIBC_2.2.5 (in /lib64/libc-2.10.1.so)
==15774==    by 0x407906: dopass (auth.c:71)
==15774==    by 0x40393E: do_cmd (command.c:127)
==15774==    by 0x402496: ftp_main (server.c:58)
==15774==    by 0x40224C: handle_client (daemon.c:211)
==15774==    by 0x402073: daemon_main (daemon.c:123)
==15774==    by 0x4043CC: …
Run Code Online (Sandbox Code Playgroud)

c valgrind memory-leaks glibc

4
推荐指数
1
解决办法
1186
查看次数

标签 统计

c ×2

glibc ×1

linux ×1

memory-leaks ×1

portability ×1

printf ×1

valgrind ×1