小编lou*_*ouk的帖子

chmod()是否需要前导零才能正常工作?

我正在尝试chmod()从我的C程序调用该函数,但它没有设置正确的权限,除非mode_t参数中有前导零.例如,chmod(argv[2],00777)将工作,但chmod(argv[2],777)将设置权限以完成垃圾.

当我尝试使用atoi()时会出现一个大问题,因为它会丢弃任何前导零.即使用户在命令行中输入没有前导零的值,我有什么方法可以使下面的程序工作?

#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h>

int main(int argc, char** argv)
{  
    if (argc != 3)
        exit(EXIT_FAILURE);

    if (chmod(argv[2], (mode_t)atoi(argv[1])) != 0)
        printf("Warning: Unable to change file permissions.");

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c atoi chmod

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

标签 统计

atoi ×1

c ×1

chmod ×1