Я довольно новичок в форумах, так что я надеюсь, что я не испорчу.
У меня есть программа, которая читает из файла, пока он помещает файл в массив двумерных символов. Теперь мне нужно strtok 2D «строка» и поместить каждую часть в структуру
вот код
struct processes
{
char processNumber[20];
int quanta;
int priority;
}process;
и
int readSave(int argc, char ** argv)
{
int i,j,k,count;
size_t blocksize = 16;
char originalFile[256], newFile[1000][20];
int fileDes;
ssize_t status;
unsigned char buffer[blocksize];
strcpy(originalFile, argv[1]);
fileDes = open(originalFile, O_RDONLY); // open for reading
i=0;
status = 99;
while(status > 0 ) // while no error
{
status = read(fileDes, buffer, blocksize);
strcpy(newFile[i],buffer); //line 71
for(k = 0; k <= blocksize; k++)
{
buffer[k] = 0;
}
i++;
if(status < 0)
{
printf("\nERROR\n");
exit(6);
}
}
//remove later
for(j = 0; j < i; j++) // prints out string to make sure it was input properly
{
printf("%s", newFile[j]);
}
printf("\n");
close(fileDes);
//Don't know how to carry on
}
Я надеюсь, что вы можете помочь, потому что я потерян
РЕДАКТИРОВАТЬ
структура processStruct процессов [7000];
while (newFile! = NULL)
{
strcpy (обрабатывает [количество] .processNumber, strtok (newFile [количество], "\ n"));
обрабатывает [count] .quanta = atoi (strtok (NULL, "\ n"));
процессы [количество] .priority = atoi (strtok (NULL, "\ n"));
count ++;
}
Я изменил структуру и входные данные, заданные @Igor, но когда я запускаю его, я получаю ошибку сегментации, и когда я компилирую с -Wall, я получаю
readtostring.c: в функции «readSave»:
readtostring.c: 71: 3: предупреждение: цели указателя при передаче аргумента 2 из «strcpy» различаются по подписи [-Wpointer-sign]
/usr/include/string.h:128:14: примечание: ожидается, что "const char * restrict ", но аргумент имеет тип "unsigned char *"