gpt4 book ai didi

c - 如何查看一个detached属性的线程退出后是否释放了系统资源?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:07:15 24 4
gpt4 key购买 nike

我正在尝试:

#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。

最佳答案

i want to know if this thread will close the file pointer fp automatically or not after exiting.

不,不会。

如果进程退出,文件指针和底层文件描述符/句柄将被关闭。

当线程退出时,实际的文件指针和底层描述符/句柄不会发生任何事情。文件指针将保持分配所有资源,底层描述符/句柄将保持打开状态。如果您的代码没有以其他方式跟踪文件指针,它将被泄露。

关于c - 如何查看一个detached属性的线程退出后是否释放了系统资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44258006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com