我尝试使用 st_mode 模拟 linux 文件权限,但是当我打印结果时,它有一个额外的不需要的消息。
/* file permission */
char buf[9] = {0};
char tmp_buf[] = "rwxrwxrwx";
int i;
for(i = 0; i < 9; i++) {
if (sta.st_mode & (1 << (8 - i))) buf[i] = tmp_buf[i];
else buf[i] = '-';
}
printf("%s", buf);
这是我的代码,但结果类似于 'rw-rw-r--rwxrwxrwx' 并且 strlen(buf) 是 18.... 有人可以帮忙吗?我不知道为什么 temp_buf 被附加到 'buf'