помогите доделать код , когда после первого открытия файла пытаюсь его открыть ещё раз , то открывает всё равно первый , а если убиваю процесс то выдается ошибка сегментации
#include<stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
#include<dirent.h>
main(){
char buf[100];
char* p=&buf[0];
int pid,n,i,c;
char way[100]="/proc";
struct dirent **namelist;
n=scandir(way, &namelist, 0, alphasort);
while(n--){
printf("%s\n", namelist[n]->d_name);
free(namelist[n]);
}
free(namelist);
printf("enter /proc/PID/status instead of PID write are necessery pid :\n");
fgets(way,sizeof way,stdin);
M1: if(way[strlen(way)-1]=='\n'){
way[strlen(way)-1]='\0';
}
printf("open file status in dir:\n");
for(n=0;n<100;n++){
printf("%c",way[n]);
}
printf("\n");
FILE* f=fopen(way,"r");
while(!feof(f) ){
*p++=fgetc(f);
}
fclose(f);
for(n=0;n<100;n++){
printf("%c",buf[n]);
}
c=getpid();
printf("\n\nPID this programm:%d", c);
printf("\nif it is that process which you want kill, press 1 \nif it is that another proc, press 2\n" );
scanf("%d", &n);
if (n!=1){
printf("enter anoter /proc/PID/status\n");
scanf("%s%*c",&way);
goto M1;
}
else{
printf("for confirmation enter PID:\n");
scanf("%d", &pid);
kill(pid, SIGKILL);
}
}