Работа с файлом несколькими скриптами

Страницы: 1
RSS
Работа с файлом несколькими скриптами
 
Есть задача синхронизировать данные между lua скриптами, сейчас у меня следующее решение:

Используется общий файл, с ним работают все скрипты через команды dofile и пару функций:

function Tofile(config,message) local file=io.open(config,"a")
file:write( message.."\n")
local z=file.close(file)
end

function Toclearfile(config,message)
local file=io.open(config,"w")
file:write( message.."\n")
local z=file.close(file)
end


Появляется проблема, когда скрипты начинают одновременную запись и часть данных теряется.

Прошу подсказать, как мне изменить код для обмена данными между скриптами? Есть ли другой способ для обмена данных?
 
Здравствуйте,
Вопрос обменена данных между двумя программами не относится именно к Lua
Это вопрос который касается вообще всех существующих языков программирования и таких способов для обмена в интернете предложено очень много.
Это и сетевые протоколы, и pipe и sql базы и т.д, обмен через файлы это только один из множества способов.

Обмен информацией через файл возможен но, только в случае если одновременно одна программа будет только считывать файл, а вторая только записывать.
И это не потому что так устроен Lua, а потому что так устроена файловая система Windows.
У Вас же в коде в обоих случаях io.open открывает файл в режиме записи, а значит происходит конфликт при одновременном доступе.
Либо открывайте один файл но по очереди,
либо используйте два файла (1й скрипт пишет в 1й файл и читает 2й файл, а 2й скрипт пишет в 2й файл и читает 1й файл),
либо используйте другой способ обмена.
Страницы: 1
Читают тему
Наверх