• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Unix 系 OS の標準的コマンドの一つである ls をまねたプログ)

Unix系OSでlsコマンドをまねたプログラムの質問

このQ&Aのポイント
  • Unix系OSの標準的コマンドであるlsをまねたプログラムを作成中。
  • コマンド"fl"の引数にディレクトリが指定された場合に、ファイル名の前にディレクトリ名を付加して表示するプログラムを作成中。
  • スラッシュ除去する部分まではできたが、メイン関数に返す方法がわからない。strcpy関数を使用してもコンパイルエラーが発生する。

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

  • ベストアンサー
  • trapezium
  • ベストアンサー率62% (276/442)
回答No.2

型宣言が char * と、return *str を return str; に。 それはいいとして、 > DIR *dir[argc]; これはできません。定数にするか必要なら malloc() で確保します。でも各ディレクトリごとに処理するなら、配列はそもそも必要ない気がします。 それに余分なスラッシュを除去するだけなら、一時バッファを使わなくとも trimslash(char *str) { char *p = str; while (*str++ = *p++) while (*p == '/' && *(p - 1) == *p) p++; } ぐらいじゃないかと。確かめてませんが。

その他の回答 (1)

回答No.1

関数の中まで詳しく見てませんが、 > char pathpath(char *str) char *pathpath(char *str) としたいんじゃないですか? そうであれば、当然returnの部分も変更する必要があります。

関連するQ&A