解決済み

文字数の限界

  • 暇なときにでも
  • 質問No.1769174
  • 閲覧数11351
  • ありがとう数6
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 86% (19/22)

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

質問者が選んだベストアンサー

  • 回答No.3

ベストアンサー率 50% (3/6)

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

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

ただ、呼び出す関数によってはもっと短い長さで失敗することもありますのでご注意ください。
お礼コメント
fooejiio

お礼率 86% (19/22)

返信がおそくなりました。回答ありがとうございました。
投稿日時 - 2005-12-24 13:12:44
感謝経済

その他の回答 (全2件)

  • 回答No.2

ベストアンサー率 26% (845/3158)

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

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

お礼率 86% (19/22)

返信がおそくなりました。回答ありがとうございました。
投稿日時 - 2005-12-24 13:13:08
  • 回答No.1

ベストアンサー率 50% (1006/1985)

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

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

お礼率 86% (19/22)

返信がおそくなりました。回答ありがとうございました。
投稿日時 - 2005-12-24 13:13:31
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


感謝指数によるOK-チップ配布スタート!

ピックアップ

ページ先頭へ