小编zha*_*gke的帖子

Linux C如何打开目录并获取文件描述符

#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <fcntl.h>

int main()
{
    int fd;
    if ((fd = open("/home/zhangke", O_DIRECTORY | O_RDWR)) ==-1)
    {
        printf("error %s\n", strerror(errno));
       return -1;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

/home/zhangke 一个目录,它存在.我得到的错误Is a directory,所以,我该如何使用open()获得fd的目录是否正确?

c linux

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

extern char ** environ和extern char * environ []有什么区别?

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

extern char *environ[];
int main(int argc, char *argv[])
{
    int index = 0;
    char **env = environ;
    printf("Environment variables:\n");
    index = 0;
    while (env[index])
    {
        printf("envp[%d]: %s\n", index, env[index]);
        ++index;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

Environment variables:  
envp[0]: GH#þ 
Run Code Online (Sandbox Code Playgroud)

我想打印所有环境,但是不能工作。
我换extern char *environ[]extern char **environ,它可以打印所有的环境。
更改代码输出后:

Environment variables:
envp[0]: XDG_SESSION_ID=8
envp[1]: TERM=xterm
envp[2]: SHELL=/bin/bash
envp[3]: SSH_CLIENT=192.168.1.224 1085 22
envp[4]: SSH_TTY=/dev/pts/0
...
Run Code Online (Sandbox Code Playgroud)

c linux

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

标签 统计

c ×2

linux ×2