2017-12-05 3 views
1

にそれらを分割し、それぞれが次の形式ファイルから行を読み取り、私は数のプロセスを作成していますC.でLinuxプロジェクトに取り組んでいますアレー

PID内のファイルに自分の情報を書き込み| NAME |タイプ| GENOME

とprocess.txtファイルには、次のようなものになります。

  • 567 | | B | 20
  • 568 | N | | 2
  • 569 | Z | B | 12

この情報はコードの実行中に提供されます。私がする方法を探してきた

pids[] = {567, 568, 569} 
    names[] = {A, N, Z} 
    type[] = {B, A, B} 
    genome[] = {20, 2, 12} 

:私は何をしたい親プロセスが子の実行の終了時にファイルを読み聞かせて、このように配列にこの値を分割することができることですそのようなことはまだ具体的な何かを発見していない。実行可能なコードをいただければ幸いです。

+0

あなたはこれまでどのようなことをしていますか? – Ora

答えて

1

私はあなたのコード全体を手伝ってくれることはありませんが、ここにヒントがあります。

各行を読み、次にsscanfを使用して値を配列に読み込みます。

char name; 
char type; 
int pid; 
int genome; 

sscanf(line, "%d %c %c %d", &pid, &name, &type, &genome); 
0

スキャンまたはファイルを足すには、あなたが最初にそれを開く必要があります。

はここに小さなコードです。 次に、fprintfと書くか、fscanfを使ってデータをスキャンするかを指定できます。 ファイルをスキャンするには、次のコードを入力してください:

int main(){ 
     char name[4], type[4]; 
     int pids[4], genome[4]; 
     int i = 0; 
     FILE * file = fopen("process.txt", "r"); // "r" = read 
     while(fscanf(file, "%d|%c|%c|%d\n", &pids[i], name[i], type[i], &genome[i]) != EOF){ 
      i++; 
     } 
} 
+0

このスニッパは、私が前に示した例では完璧に動作しますが、出力として取得したファイルは何もしません。ファイルの値は次のとおりです。 2309 | S | | 5 2310 | J | B | 2 2311 | | | 4 2312 | U | B | 6 2313 | L | | 3 2314 | C | B | 5 2315 | | T | | 2 2316 | K | B | 4 2317 | B | | 6 2318 | S | B | 3 –

関連する問題