電子書籍の厳選無料作品が豊富!

つい最近、友人から「コマンドライン引数として受け取れる最大文字列数は、どれくらいかわかる?」と聞かれました。
コマンドライン引数を保存する配列の要素数を決める際に、コマンドライン引数として渡すことができる文字列の限界(または、一般的に想定している文字数)を要素数にしたいとのことだったのですが、どなたか教えていただけないでしょうか?
あと、ほかに文字数の上限が設定されているようなもの(例 ファイル名など)があれば教えてください。

A 回答 (3件)

コマンドライン引数、ファイル名の長さに関してはOSと呼び出す関数に影響します。



理論的な最大値は以下の値だったと思います。
Windows 95 系:
ファイル名: 255 バイト
フルパス名: 259 バイト
コマンドライン引数: 32,767 バイト(だと思います)
Windows NT/2000/XP 系:
ファイル名: 255 文字
フルパス名: 約 32,000 文字
コマンドライン引数: 32,767 文字
Linux:
ファイル名: 255 バイト
フルパス名: 1,023 バイト
コマンドライン引数: 32 ページ弱(i386 系だと約 130,000 バイト)

ただ、呼び出す関数によってはもっと短い長さで失敗することもありますのでご注意ください。
    • good
    • 0
この回答へのお礼

返信がおそくなりました。回答ありがとうございました。

お礼日時:2005/12/24 13:12

コマンドライン引数に関しては、既に回答が出ているように環境依存です。



ファイル名の長さも環境依存ですが、<stdio.h>で定義されているFILENAME_MAXがファイル名(正確にはパス名)の最大長を表しています。ただし、OSが長さの制限を設けていない場合には、FILENAME_MAXの値は推奨値になります。
    • good
    • 0
この回答へのお礼

返信がおそくなりました。回答ありがとうございました。

お礼日時:2005/12/24 13:13

コマンドライン引数で渡される文字数の最大値は、使用するシェルとCランタイムライブラリの仕様によって決まるので、使用するシェルとCランタイムライブラリのリファレンスなどを参照してください。



ファイル名の長さの最大値は、使用するファイルシステムとCランタイムライブラリの仕様によって決まるので、使用するファイルシステムとCランタイムライブラリのリファレンスなどを参照してください。
    • good
    • 0
この回答へのお礼

返信がおそくなりました。回答ありがとうございました。

お礼日時:2005/12/24 13:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!