Linuxプログラミングat LINUXLinuxプログラミング - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドの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がどこに効いているかわかるんじゃね? 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch