Возможно ли форсировать изменение запущенного объекта в файловой системе? Вопрос в том, возможно ли простым методом изменить файл запущенного процесса из самого процесса? При использовании ofstream, получаю такой вывод. Got an error openning self: `Text file busy` Попробовал кодint fd; fd = open (GlobalFilesystemPathToRunningObject.c_str(), O_RDONLY); std::cout << fd << std::endl; std::cout << flock(fd, LOCK_UN) << std::endl; std::cout << open (GlobalFilesystemPathToRunningObject.c_str(), O_RDWR) << std::endl; std::ofstream file(GlobalFilesystemPathToRunningObject.c_str(), std::ios_base::app); if (file.fail()) std::cout << "Got an error openning self: `" << std::strerror(errno) << "`" << std::endl; { file << data.c_str(); file.close(); } Безрезультатно.
Нет, нельзя простым методом изменить файл запущенного процесса из самого процесса. Когда процесс открывает файл для записи, операционная система блокирует его для других процессов, чтобы избежать конфликтов. Поэтому вам не удастся изменить файл, который уже открыт на запись вашим процессом.
Вы можете попробовать изменить файл, открыв его с использованием специальных флагов, например O_RDONLY и O_RDWR. Однако в вашем примере вы пытаетесь сделать это в самом процессе, который уже открыл файл на запись, поэтому получаете ошибку "Text file busy".
Чтобы изменить файл, запущенный процесс, вам нужно использовать другой процесс или способ, например, завершить процесс, изменить файл и заново запустить процесс.
Нет, нельзя простым методом изменить файл запущенного процесса из самого процесса. Когда процесс открывает файл для записи, операционная система блокирует его для других процессов, чтобы избежать конфликтов. Поэтому вам не удастся изменить файл, который уже открыт на запись вашим процессом.
Вы можете попробовать изменить файл, открыв его с использованием специальных флагов, например O_RDONLY и O_RDWR. Однако в вашем примере вы пытаетесь сделать это в самом процессе, который уже открыл файл на запись, поэтому получаете ошибку "Text file busy".
Чтобы изменить файл, запущенный процесс, вам нужно использовать другой процесс или способ, например, завершить процесс, изменить файл и заново запустить процесс.