#php #c
#php #c
Вопрос:
Я работаю над программой, которая отправляет команду на сервер и создает файл на сервере, чтобы сообщить ему, что он подключен, например, во время работы программы она создает файл с надписью «here» каждый раз, когда она выполняет цикл, php-сайт затем проверяет сервер на наличие этого файла, если файл есть, он знает, что программа подключена. Однако, когда он внезапно останавливается, скажем, из-за выключения компьютера, это может произойти при завершении работы, когда файл был создан, поэтому скажите, что он отключается сейчас через 5 минут, если сервер проверяет, что файл будет там, есть ли какой-либо способ заставить программу удалить файл при неожиданном завершении работы? Это на C .
спасибо,
Ответ №1:
Вероятно, вам лучше создать для этой цели что-то другое, чем файл. Поскольку файлы обычно используются как более постоянное решение для хранения, это не то, что вы хотите.
То, что я бы порекомендовал, это что-то вроде мьютекса или какого-либо другого именованного, реализованного в ОС, межпроцессного токена или примитива синхронизации. С тех пор, если ваша программа завершится (нормально или ненормально), ОС очистит токен за вас, так что вам не нужно беспокоиться о ручной очистке.
В Windows вы можете использовать что-то вроде именованного мьютекса, не совсем уверен, что вы использовали бы в Linux или других Unix, но, скорее всего, что-то подобное будет доступно.
Ответ №2:
Если процесс создания выполняется в Windows, да. Создайте файл с флагом FILE_FLAG_DELETE_ON_CLOSE
. Это приведет к автоматическому удалению файла при закрытии его дескриптора. Дескриптор также закрывается, когда ваше приложение каким-либо образом завершается.
Однако я не уверен, что этот файловый механизм является самым разумным решением. Возможно, вашей клиентской программе будет намного проще просто извлекать простую веб-страницу с вашего PHP-сайта каждые 10 секунд.