Как открыть одну и ту же программу несколько раз

Русские Блоги

Открыть один и тот же файл несколько раз с помощью O_APPEND

1. Несколько раз откройте один и тот же файл для чтения
(1) Откройте один и тот же файл дважды в процессе, а затем прочитайте их отдельно, чтобы увидеть, что происходит
(2) Результатом является не более чем два случая: один — это fd1 и fd2 — чтение отдельно, второй — непрерывное чтение. После экспериментальной проверки доказано, что fd1 и fd2 читаются отдельно.
(3) Прочтите инструкции по отдельности: когда мы используем дважды, чтобы открыть один и тот же файл, файловые указатели, соответствующие fd1 и fd2, являются двумя отдельными указателями. Указатель файла включен в таблицу управления файлами динамического файла, поэтому можно видеть, что разные fds в процессе системы linux соответствуют различным независимым таблицам управления файлами.

2. Повторно открыть один и тот же файл для записи
(1) Два файла в одном и том же процессе открывают один и тот же файл и получают fd1 и fd2. Затем посмотрите, пишут ли они отдельно или продолжают запись?

КАК ЗАПУСТИТЬ РОБЛОКС С Двух АККАУНТОВ НА ОДНОМ КОМПЬЮТЕРЕ


(2) При нормальных обстоятельствах нам иногда нужно писать отдельно, а иногда нам нужно продолжать писать, поэтому эти два типа не являются хорошими или плохими. Ключ зависит от потребностей пользователя
(3) По умолчанию должно быть: написать отдельно (проверено экспериментально)

3. Добавьте O_APPEND для решения проблемы покрытия
(1) Иногда мы хотим продолжать писать вместо того, чтобы писать отдельно? Способ заключается в добавлении логотипа O_APPEND при открытии

4. Принцип реализации O_APPEND и его атомарное эксплуатационное описание
(1) Почему O_APPEND может изменить отдельную запись на непрерывную запись? Ключевым моментом является указатель файла. Внутренний принцип записи по отдельности заключается в том, что два файла имеют разные файловые указатели и учитывают только смещение друг друга. Но флаг O_APPEND позволяет функциям записи и чтения выполнять еще одну задачу: перемещать свои собственные указатели файлов, а также перемещать указатели файлов других людей. (То есть, даже если O_APPEND добавлен, fd1 и fd2 по-прежнему имеют независимый файловый указатель, но два файловых указателя связаны, и один уведомит другой, чтобы он следовал при его перемещении.)
(2) Влияние O_APPEND на указатель файла, чтение и запись файла является атомарным.

Читайте также:
Как обновить программы на Айфоне через компьютер

(3) Смысл атомарной операции заключается в том, что после начала всей операции она не прерывается, и необходимо запланировать выполнение других кодов до окончания операции. Это называется атомарной операцией. Каждая операционная система имеет несколько механизмов для реализации атомарных операций, чтобы обеспечить выполнение задач, требующих атомарных операций.

#include #include #include #include #include #include #include int main(int argc,char *argv[]) < int fd1 = 1,fd2 = 1; char buf[100] = ; char wbuf[20] = ; int ret = -1; fd1 = open(«a.txt»,O_RDWR | O_TRUNC | O_CREAT | O_APPEND,0666); fd2 = open(«a.txt»,O_RDWR | O_TRUNC | O_CREAT | O_APPEND,0666); if(-1 == fd1 || -1 == fd2) //fd < 0 < printf(«File Open Error.n»); perror(«open»); _exit(-1); >#if 1 while(1) < ret = write(fd1,»ab»,2); if(ret < 0) < printf(«Write Error.n»); perror(«write»); _exit(-1); >else < printf(«write %d byte.n»,ret); printf(«write context is [%s]n»,wbuf); >sleep(1); ret = write(fd2,»cd»,2); if(ret < 0) < printf(«Write Error.n»); perror(«write»); _exit(-1); >else < printf(«write %d byte.n»,ret); printf(«write context is [%s]n»,wbuf); >> #endif #if 0 while(1) < memset(buf,0,sizeof(buf)); ret = read(fd1,buf,30); if(-1 == ret) < printf(«Read Error.n»); perror(«read»); _exit(-1); >else < printf(«read %d byte.n»,ret); printf(«The fd1 context is [%s]n»,buf); >sleep(1); memset(buf,0,sizeof(buf)); ret = read(fd2,buf,30); if(-1 == ret) < printf(«Read Error.n»); perror(«read»); _exit(-1); >else < printf(«read %d byte.n»,ret); printf(«The fd2 context is [%s]n»,buf); >> #endif close(fd1); close(fd2); return 0; >

Источник: russianblogs.com

как запустить 2 окна или клиента игры.

Есть ли возможность запустить второй раз ту же программу в Qt?

Я создаю простую онлайн-игру в Qt Creator. Я создал серверный проект, который анализирует полученные данные и принимает решения. Также я создал проект игрока, который отправляет запросы на сервер для разрешения на перемещение, съемку и т.д. Проект игрока должен быть универсальным для Игроков 1 и Игрока 2. Есть ли возможность запуска проекта игрока дважды в Qt Creator? Мне нужно это, чтобы проверить, как работает сервер и игрок, когда подключается второй игрок.

proton 17 май 2016, в 21:37
Поделиться
Вы пытались запустить исполняемый файл извне QtCreator?
Paulo1205 17 май 2016, в 18:57
Поделиться:

2 ответа

Лучший ответ

Откройте 3 Qt Creators, 1 для сервера 2 для игроков, а затем запустите все из них. Я сделал многопользовательскую игру server-client в Qt, и именно так я ее протестировал. Для каждого клиента (игрока) откройте Qt Creator.

Читайте также:
Программа дошкольного образования это

EDIT: вы также можете создавать версии релизов и запускать их, но вы тратите много времени на создание версии выпуска каждый раз, когда хотите отлаживать.

kemis 17 май 2016, в 17:44
Поделиться

Я думал, что может быть один открытый Qt Creator одновременно. Спасибо, это работает, с одной проблемой. Во втором Qt Creator у меня есть что-то вроде: «Не могу загрузить отладчик общается». Мне нужно это общение, есть ли способ получить общение от qDebug на обоих создателях Qt?

proton 17 май 2016, в 19:05

Шутки в сторону? Вы не могли придумать какой-либо другой способ запуска приложения, кроме запуска нескольких экземпляров вашей IDE? — правда ? Вы рассматривали возможность запуска приложения несколько раз из оболочки? Или вы можете отредактировать свою конфигурацию «Run» в Creator, чтобы запустить приложение несколько раз . Есть так много лучших способов . Это решение просто . Я не знаю, что сказать .. Взломать (в лучшем случае). ..

Jesper Juhl 17 май 2016, в 19:07
Для проблемы qDebug stackoverflow.com/questions/14379325/…
kemis 17 май 2016, в 19:08
kemis 17 май 2016, в 19:20

Я хотел быстрое решение, и я получил его. Я считаю, что есть более сложные решения, но это тоже решает мою проблему.

proton 17 май 2016, в 19:24
Jesper Juhl 17 май 2016, в 19:26
Показать ещё 4 комментария

Я использую Qt Creator 4.3.1: вы можете это сделать в » Инструменты» > » Параметры» > » Создать и запустить». На вкладке » Общие » установите » Остановить приложения до построения: » до » Нет «)

Camilo 04 июль 2017, в 11:02
Поделиться

Ещё вопросы

  • 1 Многопоточность в opennetcf.orm (как использовать SqlCeDataStore)
  • 0 Получить все с отличным идентификатором пользователя и порядком по общему счету
  • 1 Какой фильтр для кодирования PNG чересстрочной с использованием компонентов обработки изображений Windows (WIC) с оболочкой C #?
  • 1 динамические события Google Analytics на основе события диспетчера тегов
  • 0 removeAttr не удаляет отключенный атрибут в Firefox
  • 1 Реализовать функцию Sliding Drawer как
  • 0 Изменить аватар пользователя из аватар изображения доступны на моем сайте?
  • 0 проверка во время компиляции с помощью const char * (nullptr)
  • 1 Как читать PDF-файлы на азиатских языках (китайский, японский, тайский и т. Д.) И хранить их в виде строки в python
  • 1 Удаление строки запроса из ServletRequest после того, как она достигает сервлета / фильтра
  • 0 C ++: При удалении динамически размещенного класса удаляются ли частные члены, которых нет в куче?
  • 1 Строковый параметр слишком длинный. извлечение данных из базы данных в шаблон слова
  • 0 JavaScript: список не обновляется после всплывающего поиска
  • 1 Передача аргументов в setTimeout: один метод не работает (JS)
  • 1 Как получить заявки для текущего пользователя в SharePoint 2013
  • 0 События во время выполнения на основе манифеста
  • 0 MySQL: транзакции PDO не работают должным образом
  • 0 Как добавить HTML вокруг строки?
  • 1 Счетчик значений по группе не показывает счетчик значений NULL / NA в пандах
  • 0 Параметр выпадающего не выбран — angularjs
  • 0 Ошибки отображаются, когда я запускаю на своем локальном хосте
  • 0 isset не работает при отправке формы (на самом деле проблема с БД)
  • 0 AngularJS: При каких конкретных обстоятельствах обещание, возвращаемое $ http, отклоняется?
  • 0 Перевод с C / C ++ на C #
  • 0 Оберните кучу вариантов внутри стола в Symfony / Twig
  • 0 sqlsrv драйвер для Windows PHP PDO SQL сервер
  • 0 PHP сравнивает массивы и заменяет значения
  • 1 c # недопустимый символ в пути к файлу
  • 0 отправить выбранные данные в таблицу php
  • 0 Как я могу разработать мобильное веб-приложение с использованием Visual Studio 2012 и jquery с asp.net MVC
  • 1 Я не могу просто сослаться на ребенка под идентификатором пользователя из базы данных Firebase
  • 0 3 столбца делятся не по горизонтали
  • 1 JS вызвать конструктор базового класса
  • 0 Динамический CSS с AnguarJS / Ionic Framework
  • 0 По умолчанию работает только для 8 и 9. После этого он использует первое число и обрабатывает его как 1,2,3
  • 1 Retrofit2-AWS S3 Multipart image Проблема с повреждением файла
  • 1 Как остановить приращение индекса, используя итерацию Array.map на основе определенных условий внутри цикла?
  • 1 Членство не использует провайдера по умолчанию
  • 1 Круглый поплавок до ближайшего 2/100
  • 1 Можно ли иметь несколько строк в одной позиции массива?
  • 0 Выполнить код, когда отображается частичное представление
  • 1 Невозможно отправить HTTP-запросы по износу Bluetooth
  • 1 Хранение содержимого таблиц из одного класса в другой класс в Java
  • 0 PHP многомерный массив
  • 1 java.lang.NullPointerException в сервлете
  • 1 Как создать собственный стиль для Android SearchView?
  • 0 Нужна регулярная фильтрация с помощью угловой таблицы
  • 1 Регулярное выражение Javascript: соответствует адресу (номер + название улицы)
  • 0 Мои значки не будут отображаться в моем нижнем колонтитуле
  • 0 Невозможно получить объектную модель в Angular
Читайте также:
Написать программу которая бы по введенному номеру единицы измерения 1 килограмм 2 миллиграмм

Источник: overcoder.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru