elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Como manejar un Buffer de 11000 caracteres ?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como manejar un Buffer de 11000 caracteres ?  (Leído 1,758 veces)
bash

Desconectado Desconectado

Mensajes: 258



Ver Perfil
Como manejar un Buffer de 11000 caracteres ?
« en: 27 Mayo 2015, 05:00 am »

Buenas a todos !!!
tengo una duda teorica estoy recibiendo un buffer que tienes mas 11000 caracteres
pero el maximo de buffer que puedo leer es de 8000 caracteres o valores y me gustaria saber que manera es eficiente y efectiva para poder recibir ese buffer ? solo es teoria  si le sale algo practico esta bien pero me guistaria entender esto !!

modificado:

Código
  1. #include<fcntl,h>
  2.  
  3. char buffer[1024];
  4.  
  5. int main()
  6. {
  7.     int fd = open("buffe.cier", O_WRONLY);
  8.   if(fd < 0)
  9.   {
  10.       ///error    
  11.    }else{
  12.  
  13.     ////aqui la verdad no me llega como llenar el buffer
  14.    //// pense usar un while o un for para ir leyendo
  15.    //// pero es un sistema empotrado
  16.     ////intente leer 1024 a 1024
  17.     ////2048 a 2018
  18.     ///// y tambien el buffer completo
  19.    /// 11700 pero nada
  20.    ///////opiniones!!! please
  21.  
  22.    }
  23.  
  24.  
  25.  
  26.  return 0;
  27. }

Gracias por adelatado

Mod: Obligatorio el uso de etiquetas GeSHi


« Última modificación: 27 Mayo 2015, 19:12 pm por #!drvy » En línea

gracias por responder mis dudas
Peregring-lk

Desconectado Desconectado

Mensajes: 50


Ver Perfil
Re: Como manejar un Buffer de 11000 caracteres ?
« Respuesta #1 en: 27 Mayo 2015, 18:49 pm »

¿Pero necesitas almacenar esos 11000 carácteres de golpe? ¿O puedes almacenarlos en paquete, procesar cada paquetes, descartarlo, y reutilizar el búfer para el siguiente grupo?

Pero si debes guardar esos 11000 carácteres de golpe, tendrías que buscar un sitio donde "te quepa". Podrías considerar guardar dicho búfer como variable local en vez de global, o quizás que el búfer esté en memoria dinámica. Quizás es la única forma, y 11000 carácteres, que no llega ni a 11KB, no es problema para la memoria dinámica.

Tal y como dije en otro post, la memoria de un programa está divida en secciones: las variables globales inicializadas van a un sitio (.glob), las variables globales no inicializadas (como tu búfer), van a otro (y se inicializan a cero), las variables locales, a otro (stack), y las variables dinámicas, a otro (heap).

Y cada arquitectura/entorno puede tener limitaciones diferentes sobre el tamaño de cada una de éstas secciones. Pero normalmente, un programa tiene tanta memoria (en suma) como direcciones de memoria que el SO pueda manejar (si un SO puede manejar hasta 4GB de RAM, pues tu programa también). Y normalmente, las secciones .globl, stack, .rodata y demás, suelen ser secciones relativamente pequeñas, mientras que el heap (montículo) es capaz de albergar todo lo demás.

Si tu arquitectura puede manejar 2GB de RAM, pero .globl, .rodata, stack y el resto de secciones "no dinámicas" ocupana 50 MB, pues el montículo podrá albergar hasta 1GB y 950MB de memoria.

En conclusión, mira las limitaciones de memoria de tu arquitectura en la documentación pertinente para ver qué cabe donde.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Como manejar JSliders?
Java
J@ziel 5 3,501 Último mensaje 9 Marzo 2010, 19:17 pm
por Leyer
Consultas SQL para saber key Buffer en MyISAM y Buffer Pol en InnoDB
Bases de Datos
el-brujo 0 3,465 Último mensaje 23 Mayo 2012, 16:34 pm
por el-brujo
Como manejar cadenas en c?? « 1 2 »
Programación C/C++
rod00x3 11 5,335 Último mensaje 8 Febrero 2013, 01:44 am
por rir3760
Problema, return address buffer overflow (Cómo calcular la dirección del buffer?
Bugs y Exploits
Debci 6 7,371 Último mensaje 7 Abril 2014, 20:00 pm
por soez
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines