Как правильно освобождать ресурсы в приложении, которое должно работать с момента запуска устройства до выключения? В моем случае приложением является некий драйвер. С одной стороны можно и не освобождать - при закрытии приложения файлы закроются, а все потоки будут прибиты операционной системой, с другой - так делать все таки неправильно, поскольку я чувствую, что я потенциально зарядил ружье и направил на свою ногу.
void* first_thread (void* arg)
{
int fd = open("/path/to/file", O_RDWR);
// ...
while (true) {
// work with file
}
}
void* second_thread (void* arg)
{
int fd = open("/path/to/second_file", O_RDWR);
// ...
while (true) {
// work with file
}
}
int main(int argc, char *argv[])
{
pthread_create(NULL, NULL, first_thread, NULL);
pthread_create(NULL, NULL, second_thread, NULL);
return foo(argc, argv); // тут что то продолжаем делать и приложение при этом не завершается
}
В какой момент закрывать файлы и завершать потоки?