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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Mensajes
Páginas: [1] 2 3 4 5
1  Sistemas Operativos / GNU/Linux / systemctl list-dependencies --reverse/--before/--after/--all en: 8 Octubre 2020, 13:07 pm
Hola amigos. Me estoy proponiendo deshabilitar algunos servicios que pueden ser prescindibles en mi debian, pero no acabo de comprender bien como funcionan y en que se diferencian los flags --reverse, --before, --after, --all.
No acabo de captar bien los matices que los diferencia, a pesar de haber googleado bastante, no acabo de enterarme. ¿Alguien podría explicarmelo? Gracias, un saludo.
2  Sistemas Operativos / GNU/Linux / Re: Al cargar el Escritorio linux, ratón y teclado no responden en: 8 Octubre 2020, 12:41 pm
Resuelto reinstalando el entorno de escritorio desde terminal con recovery mode.

Gracias a todos.
3  Sistemas Operativos / GNU/Linux / Re: Al cargar el Escritorio linux, ratón y teclado no responden en: 6 Octubre 2020, 20:48 pm
Has intentado con alguna sesión diferente a GNOME? O lo que este usando por defecto Ubuntu estos días.

Uso GNOME, pero como puedo cambiar a otro entorno distinto, sin teclado ni ratón?
4  Sistemas Operativos / GNU/Linux / Re: Al cargar el Escritorio linux, ratón y teclado no responden en: 6 Octubre 2020, 20:25 pm
¿Hay alguna razón para creer que el entorno gráfico no ha fallado? E.g. ves algún icono cambiar en el menú o alguna animación de cualquier tipo. Intenta cambiar de TTY:

CTRL+ALT+F1 (o F2, F3, etc). Si puedes cambiar de TTY entonces no es problema con tu teclado y mouse.

Si es el entorno gráfico lo que ha fallado toca ver los logs del servidor de las X o el compositor de Wayland (si es lo que estás usando).

Gracias por responder.

Si hay razones, ya que tengo algún programa que está programado para ejecutarse de inicio, y este se ejecuta sin ningún problema. Puedes ver como se abre paso a paso. Sin embargo ni el ratón ni el teclado responden.
5  Sistemas Operativos / GNU/Linux / Al cargar el Escritorio linux, ratón y teclado no responden en: 6 Octubre 2020, 19:24 pm
Hola a todos.

Tengo un problema que necesito solucionar cuanto antes. Tras reiniciar ubuntu version 20.04, me deja meter la contraseña de mi usuario con total normalidad, y cuando va a cargar el escritorio, se inicia normalmente, todo carga, pero el ratón y teclado no responden. ¿Alguien sabe por qué puede ser?

Muchas gracias de antemano. Un saludo.
6  Programación / Programación C/C++ / chdir() no funciona como pretendo en c en: 28 Septiembre 2020, 21:47 pm
Hola amigos. Estoy haciendo una shell en c como ejercicio práctico. Estaba implementando el equivalente a "cd" en la shell de linux. Funciona de maravilla, exceptuando que si tu quieres retroceder un directorio poniendo "cd ..", lo que sucede es que retrocede dos directorios, es decir... Si estás en /home/usario/Escritorio, te lleva a /home.

La función es esta, aunque no creo que esté mal. Sabéis como se puede solucionar?

Código:
void cddir(char *tr) {
    if(chdir(tr)==0) {
        chdir(tr);
    } else {
        printf("%s %s\n", "No existe el directorio: ", tr);
    }
}

Gracias.
7  Programación / Programación C/C++ / Re: Problema pasar matriz por referencia a una función en C en: 25 Septiembre 2020, 18:13 pm
Tienes varias opciones para hacer lo que quieres.

Si dejas la función trocear() tal y como la tienes, tienes que utilizar memoria dinámica:
Código
  1. #define SIZE 50
  2. int main(){
  3.    char *cadena = "Esta es una cadena de prueba";
  4.    // Array bidimensional [SIZE][SIZE] con memoria dinamica:
  5.    char **palabras = (char**)malloc(SIZE * sizeof(char*));
  6.    for(size_t i = 0; i < SIZE; ++i){
  7.        palabras[i] = (char*)malloc(SIZE * sizeof(char));
  8.    }
  9.    int numero_palabras = trocear(cadena, palabras);
  10.    for(size_t i = 0; i < numero_palabras; ++i){
  11.        printf("Palabra %i: %s\n", i+1, palabras[i]);
  12.    }
  13.    // Al terminar tienes que liberar la memoria reservada dinamicamente
  14.    for(size_t i = 0; i < SIZE; ++i){
  15.        free(palabras[i]);
  16.    }
  17.    free(palabras);
  18. }

Si quieres usar un array de manera estática tienes que definir la función trocear() como:
Código
  1. int trocear(char *cadena, char palabras[][SIZE]);
(Es optativo especificar el tamaño de la primera dimensión de un array pero para el resto de dimensiones es obligatorio)

Muchas gracias por tu respuesta, ha sido de gran ayuda. De todas formas me gustaría preguntarte como implementaría la segunda opción. Le pasaría a la función un char palabras[][SIZE], pero despues como operaría con el dentro de la función? Me refiero sobre todo a los strtok y eso...

Gracias.
8  Programación / Programación C/C++ / Problema pasar matriz por referencia a una función en C en: 25 Septiembre 2020, 13:49 pm
Hola amigos, estoy tratando de hacer una función que trocea una cadena, y la separa en los espacios, guardando cada palabra en una fila de la matriz. Para eso la paso por referencia (es decir, con un puntero) a la función trocear(), que ya he comprobado que funciona. Mi problema es que una vez que trocea, y en teoría se modifican los datos, no sé como acceder a los datos guardados. Paso código.
Código
  1. int trocear(char * cadena, char * trozos[])
  2. {
  3.        int i=1;
  4. if ((trozos[0]=strtok(cadena," \n\t"))==NULL){
  5. return 0;
  6. //printf("%s\n", trozos[0]);
  7. }
  8. while ((trozos[i]=strtok(NULL," \n\t"))!=NULL){
  9. //printf("%s\n", trozos[i]);
  10. i++;
  11. }
  12. return i;
  13. }
  14.  
  15. /*****************************************************************/
  16.  
  17. void procesarEntrada(char entrada[]){
  18. char trozos[10][10];
  19. //char *tr;
  20. char *tr;
  21. tr = trozos[0];
  22. trocear(entrada, &tr);
  23. }

Gracias de antemano. Un saludo.


MOD: Etiquetas de código GeSHi adaptadas a lenguaje C
9  Programación / Programación C/C++ / conflictin types for ... (pasando mode_t como parámetro) en: 23 Octubre 2019, 13:56 pm
Hola gente. Estoy realizando un pequeño proyecto en el cual pretendo imitar un shell, y en este caso estoy diseñando una función que haga lo mismo que el 'ls -li' del shell de Linux. Esta entre otras cosas me debe de mostrar los permisos del archivo. Para ello uso una función, a la cual se le pasa por parámetro un mode_t, y me tendría que devolver un puntero de tipo char (string).
Al intentar compilar el proyecto me da un error de 'conflicting types for 'ConvierteModo2''.
Las librerías necesarias las tengo todas importadas, y he probado a hacerlo de forma chapuza, y no modularizada, y así funciona. De aquí saco como conclusión que el problema viene de que no me lee bien el mode_t pasado por parámetro, o bien que el hecho de que me devuelva un puntero a un char falle en algún punto...

Este es el código:

Código:
else if (strcmp( entrada,"info")==0) {
        char *permiso;
        char path[]="/home/julian/Escritorio/a.out";
        permiso=(char *) malloc (12);
        struct stat a;
        stat(/*trim(tr[1])*/path, &a);
        permiso=ConvierteModo2(a.st_mode);

Código:
char *ConvierteModo2 (mode_t m) {
    static char permisos[12];
    strcpy (permisos,"---------- ");
    permisos[0]=TipoFichero(m);
    if (m&S_IRUSR) permisos[1]='r';  /*propietario*/
    if (m&S_IWUSR) permisos[2]='w';
    if (m&S_IXUSR) permisos[3]='x';
    if (m&S_IRGRP) permisos[4]='r';   /*grupo*/
    if (m&S_IWGRP) permisos[5]='w';
    if (m&S_IXGRP) permisos[6]='x';
    if (m&S_IROTH) permisos[7]='r';   /*resto*/
    if (m&S_IWOTH) permisos[8]='w';
    if (m&S_IXOTH) permisos[9]='x';
    if (m&S_ISUID) permisos[3]='s';  /*setuid, setgid y stickybit*/
    if (m&S_ISGID) permisos[6]='s';
    if (m&S_ISVTX) permisos[9]='t';
    return (permisos);
}

Alguien podría echarme una mano? Gracias de antemano.
10  Programación / Programación C/C++ / Re: Array de punteros en C en: 23 Octubre 2019, 13:40 pm
Muchas gracias por tu contestación.

Mi problema ya lo había resuelto, y fue usando una matriz, en la cual, en cada fila se almacena un comando distinto, de esa manera siempre tengo acceso a todos los comandos que he introducido.

De todas formas, gracias:  ;D
Páginas: [1] 2 3 4 5
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines