これは私がこの問題のために最初の問題を抱えていたので私の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 ++;
}
ようなものを見てする必要があります私は、それは比較的簡単だった、文字列にファイルを置く方法を解く私は驚いているあなたに
あなたは必ず自分のデータリットルです32バイトの長さですか?解析中のファイルを表示します。 – Vovanium
私はreadコマンドでファイルを渡しています。read(fileRead、buffer、blocksize)blocksizeは32です。私の問題は、単一の文字列に 'バッファ'を入れています – MrEwok