小编Edu*_*mos的帖子

如何将以0开头的数字字符串转换为八进制数

我想这样做:

void main(int argc, char *argv[]){
int mode,f;

mode = atoi(argv[2]);

if((f = open("fichero.txt",O_CREAT, mode))==-1){    
    perror("Error");
    exit(1);
}

}
Run Code Online (Sandbox Code Playgroud)

但是,当我引入像0664这样的数字时,模式等于664.如何保持前导零?

c atoi string-conversion

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

C - chmod()不更改权限

我试图更改位于特定目录中的一堆文件的权限.我正在使用chmod这样做.该函数不会返回任何错误,但是当我打印旧的和新的权限时,它看起来不会改变任何东西.

void main(int argc, char *argv[]){
    struct stat archivo;    
    char *directorio = "/home/edu/Escritorio/P7/practica7/prueba";
    char *rutaRel = malloc(strlen(directorio) + 1 + NAME_MAX);
    mode_t permisos;

    modo = strtol(argv[2], NULL, 0);    //I am trying with 0664

    strcpy(rutaRel, directorio);
    rutaRel[strlen(directorio)] = '/';
    while (ep = readdir (dp)){
        strcpy(rutaRel + strlen(directorio) + 1, ep->d_name);
        stat(rutaRel, &archivo);
        if(S_ISREG(archivo.st_mode)){
            permisos=archivo.st_mode;
            if((chmod(rutaRel,modo))==-1){
                perror("Error: \n");
            }
            printf("  %s: %u -> %u\n",ep->d_name,permisos,archivo.st_mode); 
        }
    }   

    closedir(dp);
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我无法找到错误.有任何想法吗?

OUTPUT:

a4:33204 - > 33204

a2:33204 - > 33204

A3:33204 - > 33204 …

c directory file-permissions file chmod

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

检查数字是否按顺序排列

我试图检查,如果有任何数字,它的数字是否有序.例:

1479 - >正确

1293 - >假

在Haskell中有没有正确的方法呢?我是这门语言的新手,现在感到非常失落.谢谢.

sorting int haskell digits

-3
推荐指数
1
解决办法
101
查看次数