Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - do-while

#111
¡Buenas!

Lo primero, 200GB para la raíz es malgastar espacio, con 20 GB te sobra espacio por todas partes. XD

Lo segundo y más importante a no ser que sepas donde te estás metiendo utiliza sólo los paquetes que estén en los repositorios. Olvidate de funcionar como en windows descargando porquerías desde cualquier página...

Tercero, échale una ojeada al Libro del administrador de Debian. Justo debajo del pedazo de botón donde pone BUY NOW hay un enlace para descargarlo de forma gratuita. No se si la versión en castellano está en pdf, la versión en inglés seguro que si. Por lo menos ojea los capítulos que te parezcan más interesantes. Creo que el de la gestión de paquetes es fundamental.

Ahora busca los paquetes oficiales de los controladores de tu tarjeta: apt-cache search fglrx

Y te va a tocar buscar información oficial sobre que paquetes tienes que instalar, porque ahora estoy en XUbuntu 16.04 y el soporte para fglrx ya no existe, así que no te puedo contar más.

Yo soy usuario de Nvidia, a lo mejor algún otro forero que use una tarjeta AMD puede contarte más sobre que paquetes tienes que instalar.

¡Saludos!

De todas formas no hace falta navegar demasiado para encontrar la wiki de Debian...
https://wiki.debian.org/es/ATIProprietary#jessie
#112
GNU/Linux / Re: wicd
5 Septiembre 2016, 13:03 PM
Cita de: v4char en  5 Septiembre 2016, 02:18 AM
Has probado con:
    apt-get install wicd-gtk

Si ha eliminado networkmanager directamente no tiene conexión a internet y por lo tanto no puede utilizar apt-get para instalar nada que no tuviese instalado anteriormente y cuyo .deb siga en el sistema. La otra alternativa es que, si tiene la iso que utilizó en la instalación o puede conseguirla de alguna manera, utilice apt-cdrom. Así que lo primero que tiene que hacer es recuperar la conexión, y si ya tenía instalado networkmanager es posible que por algún lado del sistema esté el .deb correspondiente y que pueda reinstalarlo utilizando el comando que le he dejado en la primera respuesta que he dado. Si esto falla puede utilizar, como ya he dicho, alguna iso que pueda conseguir de alguna manera instalar bien wicd bien networkmanager para poder recuperar la conexión. Para más información man apt-cdrom.
#113
GNU/Linux / Re: wicd
5 Septiembre 2016, 01:12 AM
Prueba a reinstalar networkmanager: apt-get -y --reinstall install networkmanager
#114
¡Buenas!

Solo voy a añadir algún dato a lo ya dicho. Los caracteres, como valores representados en un ordenador, no dejan de ser números enteros, y como números tienen su orden. Puedes verlos con el siguiente código:

int i;

for(i = 0 ; i < 256 ; i++)
    printf("%d = %c\t", i,i);


Ahora que sabes el orden de cada caracter (si has ejecutado el bucle anterior en un programa, claro) sabrás cual es el orden alfabético de cada caracter de la tabla ASCII, y lo que hace strcmp es decirte cual es el orden alfabético de una cadena con respecto a otra utilizando estos valores.

Siempre puedes hacerte una función propia para ver cómo funciona strcmp. Aquí te dejo un ejemplo:

int mistrcmp(const char* s1, const char *s2)
{
int diferencia, i = 0;

//mientras no hayamos llegado al final de alguna de las cadenas
//y los caracteres en la posicion i sean iguales
while(s1[i] != '\0' && s2[i] != '\0' && (diferencia = s1[i] - s2[i]) == 0)
i++; //pasamos al siguiente caracter

/* si diferencia = s1[i] - s2[i] no es cero es que hemos encontrado
* caracteres diferentes en la posicion i
* asi, segun la posicion que tengan s1[i] y s2[i] en la tabla ASCII se tendra:
* diferencia < 0 si s1[i] < s2[i]
* diferencia > 0 si s1[i] > s2[i] */
if(diferencia != 0)
return diferencia;

if(s1[i] == '\0') //si hemos llegado al final de la primera cadena
{
if(s2[i] == '\0') //y la segunda cadena tambien ha llegado al final
{
//es que tienen la misma longitud y que todos los caracteres son iguales
return 0; //las cadenas son iguales
}

//sino todos los caracteres son iguales pero la primera cadena es mas corta
return -1; //asi que es alfabeticamente menor
}

//sino s2[i] == '\0' y s1[i] != '\0', ya que todos los demas casos estan incluidos
//en las condiciones anteriores
return 1;
}
#115
A la variable i le asignas un valor al principio del bucle for y sólo la utilizas dentro del bucle, por lo que ese no debería de el problema.

Hasta donde conozco valgrind (que es más bien poco o nada), lo que hace es buscar fugas de memoria en tus programas, pero por lo que comentas también debe de hacer el seguimiento de las variables que utilizas.

El error que estas recibiendo, si buscas en Google o incluso si utilizas un traductor, que cuesta bien poco, lo sabrías, es sobre la utilización de una variable sin inicializar en la evaluación de una condición. Asumiendo que valgrind hace un seguimiento de las variables, si descartamos la variable i nos quedan las cuatro variables que recibe la función. Asegúrate de haberles asignado un valor, ya sea por una asignación o una lectura, entre el momento de su declaración y el momento en el que llamas a la función. Sin ver más código no podemos decir nada más. Salvo que la variable que está dando problemas está en la línea 48 del archivo tp0_pruebas.c, dentro de la función pruebas_comparar:

==22==  Uninitialised value was created by a stack allocation
==22==    at 0x400B20: prueba_comparar (tp0_pruebas.c:48
#116
Programación C/C++ / Re: Archivos en C
26 Agosto 2016, 08:29 AM
¡Buenas!

No se si lo estarás haciendo así o no, sin ver tu código es imposible saberlo, pero si utilizas feof para saber si has llegado al final del archivo tienes que tener en cuenta dos cosas.

- El indicador de final de archivo se activa después de realizar una lectura cuando ya no quedan más datos por leer: lees el último dato-> haces la siguiente lectura -> se activa el indicador de fin de archivo (y por lo tanto en la última lectura no has obtenido ningún dato útil y si escribes éste último dato estarás escribiendo información que no debería de estar ahí)

- Los archivos que no contienen solo texto (caracteres alfanuméricos, espacios, signos de puntuación y poco más), pueden dar lecturas falsas de final de archivo antes de haber llegado a éste. Así que lo mejor es utilizar las funciones fseek y ftell para para posicionarte al final del archivo, leer la cantidad de bytes que contiene y volver a la posición en la que estaba. Sabiendo la cantidad exacta de bytes que tienes que leer no te hace falta depender del indicador de final de archivo.

¡Saludos!
#117
Me alegra que te haya servido la información que te di.

Lo de VLC es raro porque es otro paquete oficial. Prueba a eliminarlo y reinstalarlo:

apt-get -y --purge remove vlc && apt-get -y --purge autoremove && apt-get -y install vlc


Si no te funciona bien siempre tienes SMPlayer, que funciona igual de bien que VLC (yo hace mucho que lo utilizo).

apt-get -y install smplayer


Y como reproductor de audio hace mucho también que utilizo Clementine. Me gusta mucho.

¡Suerte con pulir esas asperezas que te han quedado en el sistema!
#118
Pfff...

Parece que has modificado tu sources.list y que lo has dejado hecho un cristo, mezclando los repositorios estables viejos (que es lo que tenías en un principio) con los estables actuales, los de pruebas y con programas de terceros que no deberías de tener instalados de esa forma porque existen en los repositorios oficiales. Vamos, que ahora mismo tu sistema tiene tres padres distintos y alguna deficiencia mental derivada de todo eso...

Si no quieres reinstalar Debian 8 Jessie o Debian 7 Wheezy, lo único que se me ocurre es que edites tu sources.list para dejarlo con los repositorios testing (Debian 9 Stretch).

Primero elimina toda la porquería ajena a los repositorios que le has metido a tu sistema, por lo que veo tendrás que eliminar wine y  virtualbox, que están en los repositorios, la fuente de chrome la tendrás que dejar, pero con modificaciones. Según tengas instalado sudo o no, tendrás que loguearte como root de una de las siguientes maneras:

sudo su
->Introducir tu contraseña de usuario

su root
-> introducir tu contraseña de root


Después elimina los paquetes que te he dicho:

apt-get -y --purge remove wine virtualbox && apt-get -y --purge autoremove


Elimina también cualquier otro programa que hayas instalado y que no pertenezca a los repositorios, cuanta menos basura tengas a la hora de actualizar menos probabilidades tendrás de que haya problemas con librerías que no deberían de estar ahí. Después de borrar cualquier cosa acuérdate de eliminar también cualquier dependencia que tuviese y que ya no sirva para nada: apt-get -y --purge autoremove

Ahora edita /etc/apt/sources.list y déjalo como sigue:

# Chrome
#Si despues de apt-get update, esta fuente te da error, cambia stretch por testing
deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stretch main

deb http://ftp.es.debian.org/debian/ stretch main contrib non-free
deb-src http://ftp.es.debian.org/debian/ stretch main contrib non-free

deb http://security.debian.org/ stretch/updates main contrib non-free
deb-src http://security.debian.org/ stretch/updates main contrib non-free

deb http://ftp.es.debian.org/debian/ stretch-updates main contrib non-free
deb-src http://ftp.es.debian.org/debian/ stretch-updates main contrib non-free


Añade soporte para las aplicaciones de 32 bits:

dpkg --add-architecture i386


Ahora actualiza la lista de paquetes y el sistema. Según como sea de rápida tu conexión y la cantidad de paquetes que haya que descargar esto va a tardar un buen rato.

apt-get update && apt-get autoclean && apt-get -y dist-upgrade && apt-get -y --purge autoremove


Primero soluciona el error r ocho mil no se cuantos, que está relacionado con hardware realtek (no hace falta perder mucho tiempo en Google para encontrar la solución...  :¬¬)

apt-get install firmware-realtek


Y ahora instala, esta vez desde los repositorios oficiales, los paquetes que hemos eliminado antes:

apt-get -y install wine virtualbox


Para terminar intenta instalar desde los repositorios cualquier paquete que hubieses eliminado en el primer paso, y solo si no están en los repositorios y son realmente necesarios descarga el instalador desde la web oficial e instálalos utilizando gdebi (por si no lo tuvieses instalado: apt-get -y install gdebi)

Espero que nos cuentes como ha ido todo. Si el paso de actualizar el sistema falla tendrás que volver a instalar Debian, eso si, si no quieres instalar Stretch instala por lo menos Jessie, que es la última versión estable, no te vayas a Wheezy que es la anterior estable...

Se me olvidaba. En el proceso de actualización es más que posible que te salgan mensajes informando sobre los cambios en los distintos paquetes. Para continuar con la instalación tendrás que pulsar 'q'.

Para acabar, parece que has modificado la configuración sobre la localización del sistema. Para cambiar el idioma del sistema:
https://wiki.debian.org/ChangeLanguage

Una última cosa, si gdebi te dice que no se pueden satisfacer las dependencias para instalar el paquete que quieras instalar, olvídate de instalarlo. Busca una alternativa que si se pueda instalar desde los repositorios e instálala. Si fuerzas la instalación o empiezas a descargar y a llenar es sistema de librerías que no deberían de estar ahí lo único que vas a a conseguir es acabar con el sistema inutilizado, puede que no a la primera, pero antes o después tu sistema te va a enseñar su dedo corazón.
#119
¡Buenas!

Si vas a leer desde un archivo que no sea de texto olvídate de utilizar la función feof. Lo más normal es que el indicador de fin de archivo se active antes de llegar al final y que acabes con un archivo incompleto.

Lo que tendrías que hacer es usar funciones que te permitan saber cual es el tamaño del archivo. En las librerías estándar de C y C++ tienes funciones y miembros de clases de entrada/salida que te permiten ir a una posición en concreto de un archivo y saber en que posición estás, combinarlas para obtener el tamaño es cosa tuya, una vez que conozcas ese dato ya podrás leer todos los datos que contiene el archivo.
#120
¡Buenas!

Da la casualidad de que esta mañana (¿o fue ayer? ni idea) he visto algo relacionado. Supongo que estás usando alguna distro Linux. Al parecer las versiones para enlazar estáticamente se guardan en /usr/lib, y la extensión en lugar de ser .so es .a (solo he leído un comentario y no se dónde, así que si me equivoco corregidme), y a la hora de compilar debes de pasarle a gcc un parámetro que le diga con que librería debe de enlazarse el ejecutable, algo así como: gcc -lunalibrería.a fuente1.c fuente2.c ... -o tuejecutable

Mira a ver si en las páginas del manual o en la página oficial de la librería tienes información concreta sobre como hacer el enlace estático.

Si no es así decídmelo, que me pica la curiosidad pero no tanto como para estar dando vueltas por Google.  :xD