logo
Конспект Граур

Пример 2.

При разработке программ нередко приходится создавать временные файлы , которые позже удаляются. Если произошло непредвиденное событие, такие файлы могут остаться не удаленными. Ниже приведено решение этой задачи.

#include <unistd.h>

#include <signal.h>

#include <sys/types.h>

#include <sys/stat.h>

#include <fcntl.h>

const char * tempfile = “abc”;

void SigHndlr (int s)

{

unlink(tempfile);

/* уничтожение временного файла в случае прихода сигнала SIGINT. В случае, если такой файл не существует (еще не создан или уже удален), вызов вернет -1 */

exit(0);

}

int main(int argc, char **argv)

{

signal (SIGINT, SigHndlr); /*установка реакции на сигнал */

creat(tempfile, 0666); /*создание временного файла*/

unlink(tempfile);

/*уничтожение временного файла в случае нормального функционирования процесса */

return 0;

}