The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Чт-е/ред-ие файла произвольного размера"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Чт-е/ред-ие файла произвольного размера" 
Сообщение от Dmitry emailИскать по авторуВ закладки(??) on 17-Апр-05, 12:42  (MSK)
Доброго времени суток!
Подскажите пожалуйста, Мне нужно читать/редак-ть файл любого размера, мне подсказали что для этого оптимальнымбудет использование mmap()(хранение файла в памяти) так ли это?
Если да нет ли у кого примеров как работает эта функция, а то у нее много всяких параметров :)
  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Чт-е/ред-ие файла произвольного размера" 
Сообщение от Асен Тотин emailИскать по авторуВ закладки on 17-Апр-05, 14:07  (MSK)
Привет,

Пример из Advanced Linux Programming, глава 5, IPC:

Listing 5.6 (mmap-read.c) Read an Integer from a Memory-Mapped File, and
Double It

#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <unistd.h>
#define FILE_LENGTH 0x100

int main (int argc, char* const argv[])
{
int fd;
void* file_memory;
int integer;

/* Open the file. */
fd = open (argv[1], O_RDWR, S_IRUSR | S_IWUSR);

/* Create the memory mapping. */
file_memory = mmap (0, FILE_LENGTH, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
close (fd);

/* Read the integer, print it out, and double it. */
scanf (file_memory, “%d”, &integer);
printf (“value: %d\n”, integer);
sprintf ((char*) file_memory, “%d\n”, 2 * integer);

/* Release the memory (unnecessary because the program exits). */
munmap (file_memory, FILE_LENGTH);
return 0;
}

WWell,

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Чт-е/ред-ие файла произвольного размера" 
Сообщение от Maxim Kuznetsov Искать по авторуВ закладки on 20-Апр-05, 16:34  (MSK)
Скажите, Вы пример вводили методом cut&paste ?
(то есть ЭТО точная копия ?)
если да, то могу только посочуствовать людям которые пытаются учиться по таким примерам ;-[
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Чт-е/ред-ие файла произвольного размера" 
Сообщение от Асен Тотин emailИскать по авторуВ закладки on 20-Апр-05, 16:48  (MSK)
Привет,

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

WWell,

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Чт-е/ред-ие файла произвольного размера" 
Сообщение от MaximKuznetsov Искать по авторуВ закладки on 21-Апр-05, 00:23  (MSK)
>Привет,
>
>Книги всегда нужно читать от начала до конца прежде чем судить о
>них. Пример был взят из своего контекта лишь для того, чтоб
>навести коллегу на мысль посмотреть всю книжку... поэтому и бил процитирован
>источник, даже глава.
>
>WWell,
  не критикуя книгу, замечу лишь, что приведенный пример просто изобилует ошибками..что допустимо, если Вы просто пропустили лишний текст (оставили только наводящий на тему)..
а так - редкий случай, когда ошибки практически на каждой строке..
совсем не тянет на "Advanced"
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Чт-е/ред-ие файла произвольного размера" 
Сообщение от proglammer Искать по авторуВ закладки on 20-Апр-05, 21:21  (MSK)
lseek 19
%ebx - Дескриптор файла в котором изменять смещение
%ecx - Смещение в байтах
%edx - 0-установить смещение от начала файла, 1-от текущего смещения, 2-от конца файла.

В %EAX возврашается новое смещение от начала файла в байтах, или "-1" в случае ошибки.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Чт-е/ред-ие файла произвольного размера" 
Сообщение от Dmitry Искать по авторуВ закладки(??) on 28-Апр-05, 11:30  (MSK)
Ок отображать файл отображает :)

Резонные вопросы:
1. Как читать из отображенной памяти?
2. Как писать в нужное место?
3. Как вообще позицировать считывать и пасать туда, а потом сохранять все изменения в файле?

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Чт-е/ред-ие файла произвольного размера" 
Сообщение от Simps Искать по авторуВ закладки(ok) on 28-Апр-05, 12:14  (MSK)
>Ок отображать файл отображает :)
>
>Резонные вопросы:
>1. Как читать из отображенной памяти?
>2. Как писать в нужное место?
>3. Как вообще позицировать считывать и пасать туда, а потом сохранять все
>изменения в файле?

Пасать в файл физически не возможно, при физическом воздействии на винчестер ,последний выйдет из строя =)

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "Чт-е/ред-ие файла произвольного размера" 
Сообщение от VLazarenko emailИскать по авторуВ закладки(ok) on 28-Апр-05, 12:22  (MSK)
>>Ок отображать файл отображает :)
>>
>>Резонные вопросы:
>>1. Как читать из отображенной памяти?
>>2. Как писать в нужное место?
>>3. Как вообще позицировать считывать и пасать туда, а потом сохранять все
>>изменения в файле?
>
>Пасать в файл физически не возможно, при физическом воздействии на винчестер ,последний
>выйдет из строя =)

Пасать... ) ЖЖОШЬ, пиши исчо)

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "Чт-е/ред-ие файла произвольного размера" 
Сообщение от Dmitry Искать по авторуВ закладки(??) on 28-Апр-05, 19:00  (MSK)
Слушай умник тебе череп не жмет?
ха ха ха... пасать в файл не возможно...
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "Чт-е/ред-ие файла произвольного размера" 
Сообщение от Simps Искать по авторуВ закладки(ok) on 29-Апр-05, 10:05  (MSK)
>Слушай умник тебе череп не жмет?
>ха ха ха... пасать в файл не возможно...

Да Вы какой то буйный =) Ваши же слова =) Или Вы совсем шуток не понимаете а сразу копытами роете землю? =)
=============================================
Ок отображать файл отображает  :)

Резонные вопросы:
1. Как читать из отображенной памяти?
2. Как писать в нужное место?
3. Как вообще позицировать считывать и пасать туда, а потом сохранять все
                                                                           ^^^^^^
изменения в файле?
==============================================

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Чт-е/ред-ие файла произвольного размера" 
Сообщение от Simps Искать по авторуВ закладки(ok) on 28-Апр-05, 12:20  (MSK)
>Ок отображать файл отображает :)
>
>Резонные вопросы:
>1. Как читать из отображенной памяти?
>2. Как писать в нужное место?
>3. Как вообще позицировать считывать и пасать туда, а потом сохранять все
>изменения в файле?

Пасать в файл физически не возможно. Если нарушить герметизацию винчестера и осуществить сей акт, девайс выйдет из строя =)

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "Чт-е/ред-ие файла произвольного размера" 
Сообщение от Dmitry Искать по авторуВ закладки(??) on 29-Апр-05, 11:18  (MSK)
Шутки я понимаю, если они в меру и к месту...

З.Ы. а придиратся к опечаткам не хорошо :(

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

13. "Чт-е/ред-ие файла произвольного размера" 
Сообщение от Simps Искать по авторуВ закладки(ok) on 29-Апр-05, 16:07  (MSK)
>Шутки я понимаю, если они в меру и к месту...
>
>З.Ы. а придиратся к опечаткам не хорошо :(
Сколько людей, столько шуток и мест =)
Прошу прощения если обидел Вас, злого умысла не было

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

14. "Чт-е/ред-ие файла произвольного размера" 
Сообщение от DeadMustdie emailИскать по авторуВ закладки(??) on 01-Май-05, 16:05  (MSK)
>Пасать в файл физически не возможно. Если нарушить герметизацию
>винчестера и осуществить сей акт, девайс выйдет из строя =)

А на работающей машине возможно ещё и поражение электрическим
током - блок питания не особенно далеко ;-)

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру