2011-12-26 10 views
0

これは私がこの問題のために最初の問題を抱えていたので私の2番目の質問です。 私はread()文章、no fget()、fread()などのファイルを持っています。 私はこの行を使います。 FILEREADは私のファイル記述子をあるあなたが知っているように、バッファはunsigned char型とブロックサイズであるread()を使用してバッファを文字列に入れます

read(fileRead, buffer, blocksize); 

は、バッファのサイズです(私は32を選びました)。 私の問題は、私はファイルが終了するまで実行され、ファイル(32)のバッファを取り、それを文字列に入れる必要があるループを持っています。

だから私は、私が試してみました あなたがバッファを取り、それを文字列に追加するコードの行で私を助けることができる場合(2次元配列ではありません、これは良いことではないだろう)と思いまし

openCopyClose(int argc, char ** argv) 
{ 
    int i=0,j=0, k=0, count = 0; 
    size_t blocksize = 32; 
    char fromFile[256], newFile[1000][100], string[100000]; 
    int fileRead; 
    unsigned char buffer[blocksize]; 
    ssize_t status; 

    strcpy(fromFile, argv[1]); 

    fileRead = open(fromFile, O_RDONLY); // open for reading 

    status = 99; 
    while (status > 1)  //while not EOF or error 
    { 
     status = read(fileRead, buffer, blocksize); 
     strcpy(newFile[i], buffer); 

     for(count = 0; count<= 32; count++) 
     { 
      buffer[count] = 0; 
     } 
     i ++;     

     if(status < 0) 
     { 
      printf("oops2\n"); 
      exit(1); 
     } 

    } 
    printf("\n"); 

    for(j = 0; j < i; j++) 
    { 
     printf("%s", newFile[j]); 
    }   
    close(fileRead); 

} 

しかし、構造体に入れるためにstrtokしようとするとこれは機能しません。 私はread()アイデアを使用してそのファイルを1つの文字列にする必要がありますか?

はstrtokのための私のコードは、その後、この

struct processStruct processes[700]; 
while(count < 701) 
{ 

    processes[count].processNumber = strtok(newFile[0], " \n"); 
    processes[count].quanta = atoi(strtok(NULL, " \n")); 
    processes[count].priority = atoi(strtok(NULL, " \n")); 

    count ++; 
} 

ようなものを見てする必要があります私は、それは比較的簡単だった、文字列にファイルを置く方法を解く私は驚いているあなたに

+0

あなたは必ず自分のデータリットルです32バイトの長さですか?解析中のファイルを表示します。 – Vovanium

+0

私はreadコマンドでファイルを渡しています。read(fileRead、buffer、blocksize)blocksizeは32です。私の問題は、単一の文字列に 'バッファ'を入れています – MrEwok

答えて

0

に感謝私は

for(k =0; k < sizeof(buffer); k++) 
{ 
    newFile[i] = buffer[k]; 
    i++; 
} 

それを逃したし、今構造体でそれを置くために.....

+0

解決のおめでとう。あなたができるときは、他の人があなたの成功から学ぶことができるように、左のチェックマークをクリックしてあなたの答えを「受け入れられた」とマークしてください。乾杯〜 –

関連する問題