Я пытаюсь это:
#include<stdio.h>
#include<pthread.h>
void * fun1(void *arg)
{
FILE *fp;
fp=fopen("data","w+");
if(fp==0)
{
perror("fopen");
return NULL;
}
perror("fopen");
fprintf(fp,"%s\n","file opened");
return NULL;
}
void main()
{
pthread_attr_t atr;
pthread_attr_init(&atr);
pthread_attr_setdetachstate(&atr,PTHREAD_CREATE_DETACHED);
pthread_t thread1;
pthread_create(&thread1,&atr,&fun1,NULL);
pthread_attr_destroy(&atr);
while(1);
}
я хочу знать, закроет ли этот поток указатель файла fp автоматически или нет после выхода.
lsof
в Linux. - person   schedule 30.05.2017lsof
или аналогичный даст вам только дескриптор файла. Если код используетFILE *
для доступа к файлу — как в примере — нет простого способа восстановить его, и он может безвозвратно утечь. - person Andrew Henle   schedule 30.05.2017