Форум программистов, компьютерный форум CyberForum.ru

С под Linux

Войти
Регистрация
Восстановить пароль
 
KOHTPOJIEP
7 / 7 / 4
Регистрация: 06.01.2016
Сообщений: 42
Завершенные тесты: 1
#1

Запись двух строк в отображение файла ( mmap ) - C Linux

28.12.2016, 12:46. Просмотров 337. Ответов 1

Доброго времени суток.
Мне нужно использовать mmap для организации общего файла для нескольких процессов.
Как записывать одну строку без проблем, я уже знаю:

C
1
2
3
4
5
6
7
    int fdFile = open("File.txt", O_RDWR | O_CREAT | O_TRUNC,  S_IRUSR | S_IWUSR);
    char* file;
    file = (char*)mmap(0, firstString.length()+secondString.length()-2, PROT_READ | PROT_WRITE, MAP_SHARED, fdFile, 0);
    lseek(fdFile,1,SEEK_SET);
    write(fdFile,"",firstString.length()-1);
    lseek(fdFile,0,SEEK_SET);
    sprintf(file,"%s",firstString.c_str());
Но, как только я пытаюсь добавить туда вторую строку (или хотя бы символ):

C
1
2
3
4
    lseek(fdFile,firstString.length(),SEEK_SET);
    write(fdFile,"",1);
    sprintf(file,"%c",'\n');
    munmap(file, firstString.size());
вместо первых символов записываются символы конца строки.
Ломаться начинает на
C
1
write(fdFile,"",1);
Подскажите, пожалуйста, где ошибка.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2016, 12:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Запись двух строк в отображение файла ( mmap ) (C Linux):

Работа процессов с общим файлом (mmap) - C Linux
Добрый день.родительский процесс создает несколько дочерних процессов и общий файл.процессы обмениваются через этот файл:дочерние пишут в...

Реализовать метод mmap для драйвера - C Linux
Добрый день. Пишу драйвер. И хочу реализовать метод mmap. Память выделяю с помощью dma_coherent_alloc. В функции mmap следующее : ...

Использование mmap() для получения/отправки через сокет - C Linux
Есть сокет fd = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL)) Предполагается сделать setsockopt с параметрами...

Отображение строк файла с 50-й строки - Visual Basic
Подскажите, пожалуйста, как задать число строк, чтобы отображение текста в файле txt начиналось, например, с 50-той строки?

Отображение файла на память (чтение и запись информации) - C++ WinAPI
Короче нужно из одного файла переписать в другой используя отображение на память а у меня почему то создаётся пустой файл такого же...

Запись строк из файла в переменные - C++ Builder
Добрый день! Помогите, пожалуйста. Есть текстовый файл, в котором записано три строки. В программе есть три переменные ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
NoMasters
Псевдослучайный
1753 / 1096 / 72
Регистрация: 13.09.2011
Сообщений: 3,127
30.12.2016, 10:28 #2
Вы уж определитесь, через отображение вы собираетесь писать или через обычное api. Здесь у вас абсолютная мешанина и в итоге вы запутались в смещениях.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2016, 10:28
Привет! Вот еще темы с ответами:

Запись в стек строк из файла - C++
создаю стек следующим образом: int _tmain(int argc, _TCHAR* argv) { char*fname="D:\\NameOfFile.txt"; FILE*file; char...

Запись из файла в массив строк - C++ Builder
Помогите пожалуйста! Необходимо организовать запись из файла в массив строк. А далее сравнить его с другим массивом

Запись строк из файла в массив - C (СИ)
Просмотрел аналогичные вопросы - все не то! Задача проста как два пальца. Но что то у меня не выходит Надо каждую строку из файла...

Чтения двух строк из файла - C (СИ)
Не получается вывести из файла 2 текстовые строчки, одну вывожу , вторую не получается. #include "stdafx.h" #include <cstdio> ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru