![]() ![]() ![]() ![]() |
![]() |
|
![]() |
||
![]() |
外部配列sys_errlistには、システムコールのエラーメッセージ?が格納されているらしい。
その中身を表示するプログラム。
参考:UNIXシステムプログラミング
プログラム
#include <stdio.h> int main(void) { int i; printf("sys_nerr = %d\n", sys_nerr); for (i=0; i < sys_nerr; i++) { printf("%d %s\n", i, sys_errlist[i]); } exit(0); }
実行結果
$ gcc hoge.c -o hoge $ ./hoge | head sys_nerr = 89 0 Undefined error: 0 1 Operation not permitted 2 No such file or directory 3 No such process 4 Interrupted system call 5 Input/output error 6 Device not configured 7 Argument list too long 8 Exec format error
$ vi main.c #include <stdio.h> int main(int argc, char *argv[], char *envp[]){ int i; for (i = 0; i < argc; i++) { printf("i=%d : ", i); printf("%s\n", argv[i]); } for (i = 0; envp[i]; i++) { printf("%s\n", envp[i]); } }
$ ./a.out aaa bbb ccc i=0 : ./a.out i=1 : aaa i=2 : bbb i=3 : ccc SHELL=/bin/bash TERM=vt100-color HISTSIZE=9999 SSH_CLIENT=192.168.0.2 1654 22 CVSROOT=/home/cvs SSH_TTY=/dev/ttyp0 USER=xxx FTP_PASSIVE_MODE=YES PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin:/home/vitamin/bin:/home/wget/bin MAIL=/var/mail/xxx BLOCKSIZE=K PWD=/home/xxx SHLVL=1 HOME=/home/xxx LOGNAME=xxx SSH_CONNECTION=192.168.0.2 1654 192.168.0.12 22 _=./a.out
環境変数を操作する関数として、getenvやsetenvがある。