|
|
|
Чтение из файла в буфер
|
|||
|---|---|---|---|
|
#18+
Недавно начал писать на С вот есть проблема нужно данные из файла считать в буфер и потом с этим буфером работать Пишу под Linux и использую системные вызовы int fd,n,m; char buffer[m]; fd=open(path_file,"r"); n=read(fd,buffer,m); Как узнать m размер буфера? Или как его выбрать чтоб поместились все данные (из какого либо файла)? И еще вопрос как лучше с помощью read считать в буфер весь файл за раз или копировать кусками например по 512 байт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 14:25 |
|
||
|
Чтение из файла в буфер
|
|||
|---|---|---|---|
|
#18+
1. stat 2. Если файл не большой, то лучше за раз, если большой, то копировать по частям и по частям работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 14:28 |
|
||
|
Чтение из файла в буфер
|
|||
|---|---|---|---|
|
#18+
Тебе даже лучше пользовать fstat ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 14:28 |
|
||
|
Чтение из файла в буфер
|
|||
|---|---|---|---|
|
#18+
Akh1. stat 2. Если файл не большой, то лучше за раз, если большой, то копировать по частям и по частям работать. нет нужен весь файл целиком хотя и может быть большим а есть смысл в операции чтения файла по блокам и копирования этих блоков в единый файл....... зы мне б примеры путевые на эту тему посмотреть :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 14:43 |
|
||
|
Чтение из файла в буфер
|
|||
|---|---|---|---|
|
#18+
Новичок84 Akh1. stat 2. Если файл не большой, то лучше за раз, если большой, то копировать по частям и по частям работать. нет нужен весь файл целиком хотя и может быть большим а есть смысл в операции чтения файла по блокам и копирования этих блоков в единый файл....... зы мне б примеры путевые на эту тему посмотреть :( Читай весь. Главное, чтобы памяти хватило. А что примеры. Ты сам его написал в самом начале. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 14:48 |
|
||
|
Чтение из файла в буфер
|
|||
|---|---|---|---|
|
#18+
Новичок84Недавно начал писать на С вот есть проблема нужно данные из файла считать в буфер и потом с этим буфером работать Пишу под Linux и использую системные вызовы int fd,n,m; char buffer[m]; fd=open(path_file,"r"); n=read(fd,buffer,m); Как узнать m размер буфера? Или как его выбрать чтоб поместились все данные (из какого либо файла)? И еще вопрос как лучше с помощью read считать в буфер весь файл за раз или копировать кусками например по 512 байт? если Вам грамотно и по уму - то находите книгу "Windows для профессионалов" Рихтера. Читаете главу о мапирование файлов в память. Смотрите разжованный пример. Это чиссо под Win32, и чиссо оптимально (по скорости ессесвенно)... с уважением (круглый) ЗЫ Чтоб узнать размер любого файла нуна позвать обычный seek с флагом - выставить на конец файла. Возвращаемое значение - и будет Ваш искомый размер...Работает на любой платформе... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 15:44 |
|
||
|
Чтение из файла в буфер
|
|||
|---|---|---|---|
|
#18+
kolobok0 если Вам грамотно и по уму - то находите книгу "Windows для профессионалов" Рихтера. Читаете главу о мапирование файлов в память. Смотрите разжованный пример. Это чиссо под Win32, и чиссо оптимально (по скорости ессесвенно)... Вообще, то он написал, что пишет под линукс... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 15:52 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=319&tid=2029843]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
38ms |
get topic data: |
8ms |
get forum data: |
4ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 320ms |

| 0 / 0 |
