linux extern char** envrion

#include <stdio.h>
extern char** environ;
int main(int argc, char** argv)
{
    unsigned int index=0;
    while(argv[index])
    {
        printf("argv[%u]:%s, %p\n", index, argv[index], argv[index]);
    }
    
    index=0;
    while(environ[index])
    {
        printf("environ[%u]:%s, %p\n", index, environ[index], environ[index]);
    }
    
    return 0;
}
程序输出:
argv[0]:./testEnviron,0x7ffd5f8c9340
environ[0]:CLUTTER_IM_MODULE=xim,0x7ffd5f8c934e //environ的地址紧跟在argv后面
environ[1]:LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:,0x7ffd5f8c9364
environ[2]:LC_MEASUREMENT=zh_CN.UTF-8,0x7ffd5f8c9950
environ[3]:LESSCLOSE=/usr/bin/lesspipe %s %s,0x7ffd5f8c996b
environ[4]:LC_PAPER=zh_CN.UTF-8,0x7ffd5f8c998d
environ[5]:LC_MONETARY=zh_CN.UTF-8,0x7ffd5f8c99a2
environ[6]:XDG_MENU_PREFIX=gnome-,0x7ffd5f8c99ba
environ[7]:LANG=en_US.UTF-8,0x7ffd5f8c99d1
environ[8]:DISPLAY=:0,0x7ffd5f8c99e2
environ[9]:GNOME_SHELL_SESSION_MODE=ubuntu,0x7ffd5f8c99ed
environ[10]:COLORTERM=truecolor,0x7ffd5f8c9a0d
environ[11]:USERNAME=ubu,0x7ffd5f8c9a21
environ[12]:XDG_VTNR=1,0x7ffd5f8c9a2e
environ[13]:SSH_AUTH_SOCK=/run/user/1000/keyring/ssh,0x7ffd5f8c9a39
environ[14]:LC_NAME=zh_CN.UTF-8,0x7ffd5f8c9a62
environ[15]:XDG_SESSION_ID=1,0x7ffd5f8c9a76
environ[16]:USER=ubu,0x7ffd5f8c9a87
environ[17]:DESKTOP_SESSION=ubuntu,0x7ffd5f8c9a90
environ[18]:QT4_IM_MODULE=xim,0x7ffd5f8c9aa7
environ[19]:TEXTDOMAINDIR=/usr/share/locale/,0x7ffd5f8c9ab9
environ[20]:GNOME_TERMINAL_SCREEN=/org/gnome/Terminal/screen/d940b90c_7723_486c_9bda_c23768031a5d,0x7ffd5f8c9ada
environ[21]:PWD=/home/ubu/testDir,0x7ffd5f8c9b30
environ[22]:HOME=/home/ubu,0x7ffd5f8c9b46
environ[23]:TEXTDOMAIN=im-config,0x7ffd5f8c9b55
environ[24]:SSH_AGENT_PID=1343,0x7ffd5f8c9b6a
environ[25]:QT_ACCESSIBILITY=1,0x7ffd5f8c9b7d
environ[26]:XDG_SESSION_TYPE=x11,0x7ffd5f8c9b90
environ[27]:XDG_DATA_DIRS=/usr/share/ubuntu:/usr/local/share:/usr/share:/var/lib/snapd/desktop,0x7ffd5f8c9ba5
environ[28]:XDG_SESSION_DESKTOP=ubuntu,0x7ffd5f8c9bf8
environ[29]:LC_ADDRESS=zh_CN.UTF-8,0x7ffd5f8c9c13
environ[30]:GJS_DEBUG_OUTPUT=stderr,0x7ffd5f8c9c2a
environ[31]:LC_NUMERIC=zh_CN.UTF-8,0x7ffd5f8c9c42
environ[32]:GTK_MODULES=gail:atk-bridge,0x7ffd5f8c9c59
environ[33]:WINDOWPATH=1,0x7ffd5f8c9c75
environ[34]:VTE_VERSION=5202,0x7ffd5f8c9c82
environ[35]:TERM=xterm-256color,0x7ffd5f8c9c93
environ[36]:SHELL=/bin/bash,0x7ffd5f8c9ca7
environ[37]:QT_IM_MODULE=xim,0x7ffd5f8c9cb7
environ[38]:XMODIFIERS=@im=ibus,0x7ffd5f8c9cc8
environ[39]:IM_CONFIG_PHASE=2,0x7ffd5f8c9cdc
environ[40]:XDG_CURRENT_DESKTOP=ubuntu:GNOME,0x7ffd5f8c9cee
environ[41]:GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1,0x7ffd5f8c9d0f
environ[42]:GNOME_TERMINAL_SERVICE=:1.59,0x7ffd5f8c9d43
environ[43]:XDG_SEAT=seat0,0x7ffd5f8c9d60
environ[44]:SHLVL=1,0x7ffd5f8c9d6f
environ[45]:LC_TELEPHONE=zh_CN.UTF-8,0x7ffd5f8c9d77
environ[46]:GDMSESSION=ubuntu,0x7ffd5f8c9d90
environ[47]:GNOME_DESKTOP_SESSION_ID=this-is-deprecated,0x7ffd5f8c9da2
environ[48]:LOGNAME=ubu,0x7ffd5f8c9dce
environ[49]:DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus,0x7ffd5f8c9dda
environ[50]:XDG_RUNTIME_DIR=/run/user/1000,0x7ffd5f8c9e10
environ[51]:XAUTHORITY=/run/user/1000/gdm/Xauthority,0x7ffd5f8c9e2f
environ[52]:XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg,0x7ffd5f8c9e58
environ[53]:PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin,0x7ffd5f8c9e85
environ[54]:LC_IDENTIFICATION=zh_CN.UTF-8,0x7ffd5f8c9eed
environ[55]:GJS_DEBUG_TOPICS=JS ERROR;JS LOG,0x7ffd5f8c9f0b
environ[56]:SESSION_MANAGER=local/cpt:@/tmp/.ICE-unix/1248,unix/cpt:/tmp/.ICE-unix/1248,0x7ffd5f8c9f2c
environ[57]:LESSOPEN=| /usr/bin/lesspipe %s,0x7ffd5f8c9f78
environ[58]:GTK_IM_MODULE=ibus,0x7ffd5f8c9f98
environ[59]:LC_TIME=zh_CN.UTF-8,0x7ffd5f8c9fab
environ[60]:OLDPWD=/home/ubu/Redis/src,0x7ffd5f8c9fbf
environ[61]:_=./testEnviron,0x7ffd5f8c9fda
env命令输出:

CLUTTER_IM_MODULE=xim
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
LC_MEASUREMENT=zh_CN.UTF-8
LESSCLOSE=/usr/bin/lesspipe %s %s
LC_PAPER=zh_CN.UTF-8
LC_MONETARY=zh_CN.UTF-8
XDG_MENU_PREFIX=gnome-
LANG=en_US.UTF-8
DISPLAY=:0
GNOME_SHELL_SESSION_MODE=ubuntu
COLORTERM=truecolor
USERNAME=ubu
XDG_VTNR=1
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
LC_NAME=zh_CN.UTF-8
XDG_SESSION_ID=1
USER=ubu
DESKTOP_SESSION=ubuntu
QT4_IM_MODULE=xim
TEXTDOMAINDIR=/usr/share/locale/
GNOME_TERMINAL_SCREEN=/org/gnome/Terminal/screen/8304bd5d_025c_42a5_aab3_1b5e291b3a11
PWD=/home/ubu
HOME=/home/ubu
TEXTDOMAIN=im-config
SSH_AGENT_PID=1343
QT_ACCESSIBILITY=1
XDG_SESSION_TYPE=x11
XDG_DATA_DIRS=/usr/share/ubuntu:/usr/local/share:/usr/share:/var/lib/snapd/desktop
XDG_SESSION_DESKTOP=ubuntu
LC_ADDRESS=zh_CN.UTF-8
GJS_DEBUG_OUTPUT=stderr
LC_NUMERIC=zh_CN.UTF-8
GTK_MODULES=gail:atk-bridge
WINDOWPATH=1
VTE_VERSION=5202
TERM=xterm-256color
SHELL=/bin/bash
QT_IM_MODULE=xim
XMODIFIERS=@im=ibus
IM_CONFIG_PHASE=2
XDG_CURRENT_DESKTOP=ubuntu:GNOME
GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1
GNOME_TERMINAL_SERVICE=:1.59
XDG_SEAT=seat0
SHLVL=1
LC_TELEPHONE=zh_CN.UTF-8
GDMSESSION=ubuntu
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
LOGNAME=ubu
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
XDG_RUNTIME_DIR=/run/user/1000
XAUTHORITY=/run/user/1000/gdm/Xauthority
XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
LC_IDENTIFICATION=zh_CN.UTF-8
GJS_DEBUG_TOPICS=JS ERROR;JS LOG
SESSION_MANAGER=local/cpt:@/tmp/.ICE-unix/1248,unix/cpt:/tmp/.ICE-unix/1248
LESSOPEN=| /usr/bin/lesspipe %s
GTK_IM_MODULE=ibus
LC_TIME=zh_CN.UTF-8
_=/usr/bin/env

extern char** environ; 是libc加载进去的,参考文章https://www.cnblogs.com/sky-heaven/p/8422023.html,讲述程序在进入main函数之前做了什么。

envrion元素的地址是紧跟在argv元素后面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值