Запись целых чисел в поток

Я создал библиотеку, в которой есть фрагмент кода, подобный следующему

int a;
a = 5;

std::ofstream outFile("File.txt");
outFile << "Values : " << std::endl;
outFile << a << std::endl;

Теперь эта библиотека используется двумя разными процессами, которые выводят File.txt с двумя разными выводами.

Выход 1:

Values :

Результат 2:

Values :
5

Я нашел некоторые ресурсы, в которых упоминается передача целых чисел в потоки путем преобразования в строки с помощью std::to_string (Преобразование целого числа в строку в C++). Но я хочу знать, что заставляет эти два процесса действовать по-разному в одном и том же сценарии. Такое ощущение, что один из процессов вносит какие-то изменения в потоки в глобальном состоянии.

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

Some programmer dude 03.01.2019 10:37

В Linux, если два процесса пытаются записать в один и тот же файл, результат не определен. Если вы добавите PID к имени файла, вы получите правильный результат.

jha-G 03.01.2019 10:38
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
78
1

Ответы 1

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

Спасибо за ответ. но эти процессы запускались один за другим. Так что не было сомнений в том, что можно писать один и тот же файл одновременно.

BAdhi 03.01.2019 17:36

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

Dawson Moore 03.01.2019 17:42

Другие вопросы по теме