FreeBSD初心者運用日記 このページをアンテナに追加

 | 

2008-05-25

[]環境変数を出力 23:58 環境変数を出力 - FreeBSD初心者運用日記 を含むブックマーク はてなブックマーク - 環境変数を出力 - FreeBSD初心者運用日記 環境変数を出力 - FreeBSD初心者運用日記 のブックマークコメント

  • プログラム
$ 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がある。

[][]usageの表示方法 00:02 usageの表示方法 - FreeBSD初心者運用日記 を含むブックマーク はてなブックマーク - usageの表示方法 - FreeBSD初心者運用日記 usageの表示方法 - FreeBSD初心者運用日記 のブックマークコメント

$ strings /bin/ls | grep -i usage

[]usageルール 00:11 usageルール - FreeBSD初心者運用日記 を含むブックマーク はてなブックマーク - usageルール - FreeBSD初心者運用日記 usageルール - FreeBSD初心者運用日記 のブックマークコメント

usageには、決まったルールはないが、以下の暗黙的なルールがあるらしい。

(参考:UNIXシステムプログラミング)

  • パターンA
    • Usage: hoge [-abc]
      • オプションとしてa、b、cを指定できて、まとめて指定できる。
  • パターンB
    • Usage: hoge [-a|-b] file
      • オプションとしてaかbのどちらかを指定でき、ファイル名を引数として指定。(オプションは指定しなくてもよい)
  • パターンC
    • Usage: hoge {-a|-b}
      • 必須のオプションとしてaかbのどちらかを必ず指定する必要がある。
  • パターンD
    • Usage: hoge [-ab] [-c arg] [-lLength] file..
      • オプションとして、a,b,c,lを指定できる。オプションcは引数argを指定できる。オプションlは空白をおかずに長さを指定する引数を指定する。1個以上のファイル名を指定する。

[][]アーカイブファイルに含まれるオブジェクトファイルをリストする方法 00:15 アーカイブファイルに含まれるオブジェクトファイルをリストする方法 - FreeBSD初心者運用日記 を含むブックマーク はてなブックマーク - アーカイブファイルに含まれるオブジェクトファイルをリストする方法 - FreeBSD初心者運用日記 アーカイブファイルに含まれるオブジェクトファイルをリストする方法 - FreeBSD初心者運用日記 のブックマークコメント

$ ar t /usr/lib/libc.a | head
wmemset.o
wmemmove.o
wmemcpy.o
wmemcmp.o
wcsxfrm.o
wcswidth.o
wcstok.o
wcsstr.o
wcsspn.o
wcsrchr.o
 |