Я читаю большой файл, используя fread. Когда я прерываю программу во время ее использования с помощью Ctrl + C, программа зависает и не подлежит уничтожению, также не с помощью kill -9. Он просто придерживается 100% CPU, сохраняя оперативную память, которую он уже выделил. Было бы замечательно исправить это, но было бы хорошо просто убить это приложение извне (главная проблема в том, что я не могу перезагрузить эту машину самостоятельно).
Есть ли способ сделать это в Unix?
Спасибо!
Вот источник:
int Read_New_Format(const char* prefix,const char* folder)
{
char filename[500];
long count_pos;
//open files for reading.
sprintf(filename,"%s/%s.pos.mnc++",folder,prefix);
FILE *pos = fopen(filename,"r");
if(pos==NULL)
{
printf("Could not open pos file %s\n",filename);
}
//read the number count of entries in each of the three files.
fread(&count_pos,sizeof(long),1,pos);
printf("[...]");
//read the complete file into an array.
float *data_pos = new float[3*count_pos];
fread(data_pos,3*sizeof(float),*count_pos,pos);
printf("Read files.\n");
[...]
}