поведение нескольких прогамм зависит от наличия определенного
файла : они должны выполнять какие-то действия если файл
отсутствует (в т.ч. создать этот файл).
Проверять наличие файла чем-нить типа boost::filessystems::exists()
нельзя, так как за время между вызовом exists
и созданием файла файл уже может быть создан другой программой.
Как сделать так что бы при создании файла, если он уже существует,
бросалось бы исключение или че-нить такое ?
Re: бросить исключение при создании уже существующего файла
Здравствуйте, pivoo, Вы писали:
P>Здравствуйте, ssm, Вы писали:
ssm>>а чем ты создаешь файл?
P>мне не важно чем создавать, главное платформонезависимо, P>а файл этот важен только фактом своего существования.
P>в данный момент ofstream'ом
блин а exception он вобще кидать не хочет,
открываю 2 потока, связанных с одним и тем же файлом
и пишу в них, никаких exception'ов но в файле
одни данные поверх других.
Re[4]: бросить исключение при создании уже существующего фай
Здравствуйте, pivoo, Вы писали:
P>Здравствуйте, pivoo, Вы писали:
P>>Здравствуйте, ssm, Вы писали:
ssm>>>а чем ты создаешь файл?
P>>мне не важно чем создавать, главное платформонезависимо, P>>а файл этот важен только фактом своего существования.
P>>в данный момент ofstream'ом
P>блин а exception он вобще кидать не хочет, P>открываю 2 потока, связанных с одним и тем же файлом P>и пишу в них, никаких exception'ов но в файле P>одни данные поверх других.
Действия потоков синхронизировать нужно, однако
Здравствуйте, pivoo, Вы писали:
P>Здравствуйте, pivoo, Вы писали:
P>>Здравствуйте, ssm, Вы писали:
ssm>>>а чем ты создаешь файл?
P>>мне не важно чем создавать, главное платформонезависимо, P>>а файл этот важен только фактом своего существования.
P>>в данный момент ofstream'ом
P>блин а exception он вобще кидать не хочет, P>открываю 2 потока, связанных с одним и тем же файлом P>и пишу в них, никаких exception'ов но в файле P>одни данные поверх других.
два потока и два процесса — это две разные вещи, если у тебя два потока, то тебе хватит одной критической секции, если у тебя два процесса, то я бы сделал менеджер записи в файл, который бы был singleton, в отношении твоих процессов, и всю работу с файлами производил при помощи этого мэнеджера.
но тут другой вопрос возникает : а где ты возьмешь критическую секцию для голого C++?
я думаю, тебе стоит написать кусок платформо-зависимого кода, для определения занятости файла и блокировок. будет имхо проще
Re[5]: бросить исключение при создании уже существующего фай
Здравствуйте, ssm, Вы писали:
ssm>два потока и два процесса — это две разные вещи, если у тебя два потока, то тебе хватит одной критической секции, если у тебя два процесса, то я бы сделал менеджер записи в файл, который бы был singleton, в отношении твоих процессов, и всю работу с файлами производил при помощи этого мэнеджера. ssm>но тут другой вопрос возникает : а где ты возьмешь критическую секцию для голого C++? ssm>я думаю, тебе стоит написать кусок платформо-зависимого кода, для определения занятости файла и блокировок. будет имхо проще
неужели нет такой штуки, что при попытке создать
уже существующий файл происходило бы что-нибудь плохое ???
это же кажется достаточно естественным ...
Re[6]: бросить исключение при создании уже существующего фай
P>неужели нет такой штуки, что при попытке создать P>уже существующий файл происходило бы что-нибудь плохое ??? P>это же кажется достаточно естественным ...
ну почему нет?