#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的目录是否正确?
#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)