1

次のことを行うはずのCで関数/メソッドを書いています:

/** * 引数のリストを受け取り、 * 構成ファイルの名前を conffile にコピーします。* デフォルトのファイル名が使用された場合は 1 を返します。* パラメータ -f が存在し、指定された名前が使用された場合は 2 を返します。-f * パラメータがあっても無効な場合は 0 を返します。(最後の引数)
*/

基本的に、これら 2 つのオプションのいずれかがプログラムによって「尋ねられます」:

1- コントローラー -f FCFS|LOOK

2- コントローラ FCFS|LOOK

2 番目を尋ねられた場合は、デフォルトの名前を使用する場合を入力します。

 int get_conf_name(char* argv[], char* conffile) { 

// Searches for -f 

 s = strstr(*argv, "-f");


if(s != NULL){

      if(//its valid){
 strcpy(conffile, //the name of the file which comes after -f

 return 2

 }

      else return 0

 }

 else{

 strcpy(confile, "config.vss")

 return 1

 }

 }

ここでの問題は、-f の後の単語を取得して、それを confile にコピーする方法です。そして、それらの1つが配列であるため、conffileにアクセスするのと同じ方法でargvにアクセスできますか? for ループと strlen を使おうと思ったのですが、それだとコンピュータにとって余計な手間がかかりますよね。

4

1 に答える 1