c - Error: Invalid Argument ORBIT_SOCKETDIR=/tmp/orbit-root -
i trying communicate hardware passing command line arguments. have error checking if pass wrong arguments. whenever pass unrecognized argument getting error : orbit_socketdir=/tmp/orbit-root. opened location , has socket files. error checking in code working fine , exiting when wrong argument encountered. tried searching on google not find satisfactory explanation. can me here.
happened me today.
arguments passed program stored inside called process environment block. when no arguments passed main , it's trying access them in argv reads next elements in block(i found more info here: https://stackoverflow.com/a/26417129/3922692)
then wrote this:
⚡⚡⚡ more test.c #include <stdio.h> int main(int argc, char **argv) { int i; for(i = 0; < 100; i++) { printf("argv[%d] contains %s \n", i, argv[i]); } return 0; } when run without arguments:
⚡⚡⚡ ./a.out argv[0] contains ./a.out argv[1] contains (null) argv[2] contains orbit_socketdir=/tmp/orbit-ehwas argv[3] contains ssh_agent_pid=2443 argv[4] contains term=xterm-256color argv[5] contains shell=/bin/bash argv[6] contains xdg_session_cookie=3f606f46028152e69e3d858900000009-1422008859.843197-1908595864 argv[7] contains windowid=39845891 argv[8] contains gnome_keyring_control=/tmp/keyring-nncd02 argv[9] contains gtk_modules=canberra-gtk-module argv[10] contains user=ehwas argv[11] contains 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: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:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=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:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=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:*.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:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=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:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36: argv[12] contains ssh_auth_sock=/tmp/ssh-elberd2392/agent.2392 argv[13] contains username=ehwas argv[14] contains desktop_session=openbox argv[15] contains path=/home/ehwas/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games argv[16] contains gdm_xserver_location=local argv[17] contains pwd=/home/ehwas argv[18] contains lang=en_us.utf-8 argv[19] contains gnome_keyring_pid=2382 argv[20] contains gdm_lang=en_us.utf-8 argv[21] contains gdmsession=openbox argv[22] contains shlvl=1 argv[23] contains home=/home/ehwas argv[24] contains logname=ehwas argv[25] contains dbus_session_bus_address=unix:abstract=/tmp/dbus-sp7bgflecg,guid=fd8e2dfe17f3d2888c471c0e00000026 argv[26] contains xdg_data_dirs=/usr/local/share/:/usr/share/:/usr/share/gdm/ argv[27] contains windowpath=7 argv[28] contains display=:0.0 argv[29] contains colorterm=gnome-terminal argv[30] contains xauthority=/home/ehwas/.xauthority argv[31] contains _=./a.out argv[32] contains (null) segmentation fault and arguments:
⚡⚡⚡ ./a.out test test test test argv[0] contains ./a.out argv[1] contains test argv[2] contains test argv[3] contains test argv[4] contains test argv[5] contains (null) argv[6] contains orbit_socketdir=/tmp/orbit-ehwas argv[7] contains ssh_agent_pid=2443 argv[8] contains term=xterm-256color argv[9] contains shell=/bin/bash argv[10] contains xdg_session_cookie=3f606f46028152e69e3d858900000009-1422008859.843197-1908595864 argv[11] contains windowid=39845891 argv[12] contains gnome_keyring_control=/tmp/keyring-nncd02 argv[13] contains gtk_modules=canberra-gtk-module argv[14] contains user=ehwas argv[15] contains 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: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:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=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:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=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:*.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:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=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:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36: argv[16] contains ssh_auth_sock=/tmp/ssh-elberd2392/agent.2392 argv[17] contains username=ehwas argv[18] contains desktop_session=openbox argv[19] contains path=/home/ehwas/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games argv[20] contains gdm_xserver_location=local argv[21] contains pwd=/home/ehwas argv[22] contains lang=en_us.utf-8 argv[23] contains gnome_keyring_pid=2382 argv[24] contains gdm_lang=en_us.utf-8 argv[25] contains gdmsession=openbox argv[26] contains shlvl=1 argv[27] contains home=/home/ehwas argv[28] contains logname=ehwas argv[29] contains dbus_session_bus_address=unix:abstract=/tmp/dbus-sp7bgflecg,guid=fd8e2dfe17f3d2888c471c0e00000026 argv[30] contains xdg_data_dirs=/usr/local/share/:/usr/share/:/usr/share/gdm/ argv[31] contains windowpath=7 argv[32] contains display=:0.0 argv[33] contains colorterm=gnome-terminal argv[34] contains xauthority=/home/ehwas/.xauthority argv[35] contains _=./a.out argv[36] contains (null) segmentation fault tldr: before using argv 1 should check in argc or @ least if argv[1] null (that means there no arguments passed)
Comments
Post a Comment