Linuxプログラミング
at LINUX
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
650:login:Penguin 08/03/05 21:11:41 DSOAwXvG (引数+環境変数)の長さはARG_MAXで制限されると見たのですが、実験してみると ARG_MAXをはるかに超えて環境変数を保存できるようです。 これはそういう仕様と理解していいのでしょうか?ポインタでも示していただけると幸いです。 Linux ru 2.6.22-14-generic #1 SMP Tue Feb 12 07:42:25 UTC 2008 i686 GNU/Linux #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> int main(int argc, char *argv[]) { char* str; int i; int size = 10000*1024; str = malloc(size); fprintf(stderr, "ARG_MAX=%d\n", sysconf(_SC_ARG_MAX)); memset(str, 'a', size); memcpy(str, "hoge=", 5); putenv(str); printf("%s", getenv("hoge")); free(str); return 0; } 651:login:Penguin 08/03/06 20:49:10 xYqhiEhk >>650 仕様かどうかは知らんが、free(str)の前にsystem("ls");といれて、 straceつきで実行してみればARG_MAXがどこに効いているかわかるんじゃね?
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
4044日前に更新/218 KB
担当:undef