gpt4 book ai didi

c - 在 C 中使用 strcat 获取权限

转载 作者:行者123 更新时间:2023-12-02 06:30:11 26 4
gpt4 key购买 nike

请帮忙,快疯了,现在已经尝试这样做 8 个小时了,但从来没有用过。我意识到我可以很容易地打印出文件的权限,我已经设法做到了,但是我不能使用这种方法来返回它。

char *printMode(mode_t mode) {
char *myString = (char *)calloc(11, sizeof(char));

mode_s = ((S_ISDIR(mode)) ? "d" : "-");
strcat(mode_s, ((mode & S_IRUSR) ? "r" : "-"));
strcat(mode_s, ((mode & S_IWUSR) ? "w" : "-"));
strcat(mode_s, ((mode & S_IXUSR) ? "x" : "-"));
strcat(mode_s, ((mode & S_IRGRP) ? "r" : "-"));
strcat(mode_s, ((mode & S_IWGRP) ? "w" : "-"));
strcat(mode_s, ((mode & S_IXGRP) ? "x" : "-"));
strcat(mode_s, ((mode & S_IROTH) ? "r" : "-"));
strcat(mode_s, ((mode & S_IWOTH) ? "w" : "-"));
strcat(mode_s, ((mode & S_IXOTH) ? "x" : "-"));

return myString;
}

最佳答案

问题是这两行:

char *mode_s = (char *) calloc(MODE_S_LEN, sizeof(char));
mode_s = ((S_ISDIR(mode)) ? "d" : "-");

第一个使mode_s 指向您分配的内存。下一行让它指向 "d""-"。您重新分配指针并使其指向其他地方。

由于您将分配的内存初始化为零,因此您也可以在此处使用 strcat。或者 strcpy

关于c - 在 C 中使用 strcat 获取权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40307440/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com