小编tra*_*www的帖子

是否有C函数来获取文件的权限?

我正在编写要在UNIX上运行的ac程序,并尝试使用chmod命令.在查阅了手册页后,我知道chmod需要两个参数.第一个是权限位,第二个是要更改的文件.我想采用文件当前权限位和用户输入的位的按位OR,并将其提供给chmod()以更改文件的权限.

我找到了这个access()函数,但是我很难弄清楚如何使用它来获取指定文件的权限位.

我现在拥有的是:

octalPermissionString = strtol(argv[1], (char**)NULL, 8);
if(chmod(argv[2], octalPermissionString | (access(argv[2], octalPermissionString)) < 0) {
                    fprintf(stderr, "Permissions of file %s were not changed.\n");
                }
Run Code Online (Sandbox Code Playgroud)

哪里:

argv [1]包含一个由用户输入的三位十进制数的字符串,用于转换为八进制,然后用作按位OR的权限位,

argv [2]是允许更改权限的文件,也是由用户指定的.

octalPermissionString是一个long来保存用户输入的八进制转换.

是/是否有任何其他函数可以返回给定文件的权限位?

编辑:缺少右括号

c unix permissions strtol

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

有没有办法在java中将字节转换为布尔数组?

我正在尝试编写一个传输4字节流的TCP服务器/客户端程序.一旦客户端收到4个字节,我就想将每个接收到的字节转换为布尔值[8].有没有办法做到这一点?我可以成功地将4个字节从服务器传输到客户端,并且客户端接收的每个字节的值与传输到服务器的值匹配.我已经确定了我在客户端编写的转换方法中的错误,该方法粘贴在下面,如果需要,我可以根据请求发布更多代码.

样本输入======( - 2 11111110)( - 111 11110110)( - 2 11111110)( - 2 11111110)

实际输出====( - 2 11111110)( - 110 11110110)( - 21111110)( - 2 11111110)

预期输出==( - 2 11111110)( - 110 11110110)( - 2 11111110)( - 2 11111110)[与输入相同]

public static boolean[] byteToBoolArr(byte x) {
    boolean[] boolArr = new boolean[8];
    boolArr[0] = ((x & 0x01) != 0);
    boolArr[1] = ((x & 0x02) != 0);
    boolArr[2] = ((x & 0x04) != 0);
    boolArr[3] = ((x & 0x08) != 0);

    boolArr[4] = …
Run Code Online (Sandbox Code Playgroud)

java byte boolean type-conversion

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

标签 统计

boolean ×1

byte ×1

c ×1

java ×1

permissions ×1

strtol ×1

type-conversion ×1

unix ×1