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

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Mensajes
Páginas: 1 [2] 3 4
11  Programación / Programación C/C++ / Re: Comunicación USB con Android en: 30 Junio 2017, 17:37 pm
No he tenido experiencia con Android pero si un poco con Java te recomiendo comenzar con java que es el lenguaje que se usa para Android estudio, es claro que es un lenguaje orientado a objetos y conocer algún método de arquitectura de sotware el más básico bastará.
12  Programación / Programación C/C++ / Re: Comunicación USB con Android en: 30 Junio 2017, 04:12 am
 :rolleyes:

Solo podria orientarte en la parte del host, podrias crear una aplicacion que se base en libusb para reconocer tu celular y realizar transferencias de tipo control, interrupcion o bulk.

En la parte del celular si que nose como java y android manejaran la recepción usb.

Pero por que hacer esto por cable USB con una aplicación que use internet sería mas facil de hacer, o bluethoot.
13  Programación / Programación C/C++ / Re: ayuda con vectores en: 30 Junio 2017, 03:59 am
Umm con un break bastara, no lo he probado pero debe funcionar, ni lo he compilado.

    
Código
  1. #include <stdio.h>
  2.    #include <stdlib.h>  
  3.    #define LENGTH 1001
  4.  
  5.    int num[LENGTH];
  6.  
  7.    int main()
  8.    {
  9.        int dato;
  10.        while(1)
  11.        {
  12.              printf("Intoduzaca numero= ");
  13.              scanf("%d",&dato);
  14.              if(dato==-1 || dato>=LEGTH)
  15.                    break;            //salgo del while infinito y no imprimo nada el programa termina
  16.              ++num[dato];
  17.              printf("El numero %d ha sido introducido %d", dato, num[dato]);
  18.        }
  19.  
  20.        return EXIT_SUCCESS;
  21.    }
14  Programación / Programación C/C++ / Re: ayuda con vectores en: 29 Junio 2017, 22:06 pm
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>  
  3. #define LENGTH 1001
  4.  
  5. int num[LENGTH];
  6.  
  7. int main()
  8. {
  9.    for(int dato=0 ; dato!=-1 && dato<LENGTH; )
  10.    {
  11.          printf("Intoduzaca numero= ");
  12.          scanf("%d",&dato);
  13.          ++num[dato];
  14.          printf("El numero %d ha sido introducido %d", dato, num[dato]);
  15.    }
  16.  
  17.    return EXIT_SUCCESS;
  18. }

No entiendo el porque de la ultima parte del numero mil
15  Programación / Programación C/C++ / Re: (Consulta) No entiendo la función libusb_control_transfer en: 27 Junio 2017, 22:10 pm
Hey echale un vistazo a este proyecto que hice con libusb para ver televisión digital desde un dispositivo USB que la capta en Linux

Especialmente este archivo
https://github.com/aurquiel/Open_Digital_Television_Linux_USB_VLC/blob/master/include/samsung.h

Casi al final hay unas funciones documentadas que hacen las funciones de transferencias de control libusb.

unsigned char TC90527_I2cWrite(unsigned char Addr,unsigned char Data) //linea 851
16  Programación / Programación C/C++ / Re: Libro más recomendable para aprender C en: 4 Mayo 2017, 02:20 am
C programming language Ritchie Kernighan Creo que si no es el mejor, es uno de los mejores.
17  Programación / Programación C/C++ / Re: Se puede mejorar este codigo¿? en: 29 Abril 2017, 03:38 am
Se debe mejorar lo del bucle infinito del numero negativo, dejar ciclos infinitos es una catastofre. >:(


Esto no lo mejora pero se ve mas estetico
Código:
numero1 += velocidad;

 :xD
18  Programación / Programación C/C++ / Re: Manejo de e/s stdin/stdout y ficheros en: 28 Abril 2017, 05:11 am
 :D

Hola te puedo hablar es desde linux y de c no de c++ y lo que te voy a decir te va a conducir a otra pregunta de como funciona, pero vas a estar mas cerca aunque la respuesta no es tan trivial se necesita tiempo para comprer como funciona.

printf() es la funcion de impresión en patalla de c, pero printf es una mascara por asi decirlo de una función del kernel de linux system call llamada write() que opera a bajo nivel

Si tomas un programa en c
Código
  1. #include <stdio.h>
  2. int main(void)
  3. { printf("hello"); return 0; }

Lo compilas, abres la consola  
Código:
gcc -Wall -o hello hello.c
y luego ejecutas
Código:
strace ./hello

Impresionado?

Código:
execve("./book", ["./book"], [/* 48 vars */]) = 0
brk(NULL)                               = 0x1640000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd227e03000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=162022, ...}) = 0
mmap(NULL, 162022, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fd227ddb000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\t\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1864888, ...}) = 0
mmap(NULL, 3967392, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fd227817000
mprotect(0x7fd2279d6000, 2097152, PROT_NONE) = 0
mmap(0x7fd227bd6000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1bf000) = 0x7fd227bd6000
mmap(0x7fd227bdc000, 14752, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fd227bdc000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd227dda000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd227dd9000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd227dd8000
arch_prctl(ARCH_SET_FS, 0x7fd227dd9700) = 0
mprotect(0x7fd227bd6000, 16384, PROT_READ) = 0
mprotect(0x600000, 4096, PROT_READ)     = 0
mprotect(0x7fd227e05000, 4096, PROT_READ) = 0
munmap(0x7fd227ddb000, 162022)          = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
brk(NULL)                               = 0x1640000
brk(0x1661000)                          = 0x1661000
write(1, "hello", 5hello)                    = 5
exit_group(0)                           = ?
+++ exited with 0 +++

Todo eso son system calls del kernel de linux, mira esta linea

Código:
write(1, "hello", 5hello)                    = 5

Hasta aquí llego yo no he tenido el tiempo para saber como esta construido el kernel de linux, pero parece ser complicado.

Se que no he respondido a totalidad tu pregunta, pero hasta ahora yo solo hago aplicaciones de usuarios, tu proyecto parece ser muy ambicioso, al indagar mas a fondo te vas a encontrar cosas que requerirán mucho tiempo de análisis y estudio, mejor comenzar por algo suave y con el tiempo ir hacia aguas mas profundas.

Esto quiere decir que c esta corriendo encima de todo esto, el kernel.

Y por asi decirlo el Kernel esta construido en su propia version de c diferente, con funciones llamdas diferentes al ANSI C pero de comportamiento similar como son prinftk en ves de printf okmalloc en vez de malloc y asi otras mas.
19  Programación / Programación C/C++ / Por que este programa corre bien de esta forma y no de esta otra C en: 28 Abril 2017, 04:44 am
En un ejercicio debo encontrar un patrón de un arreglo desde la derecha hacia la izquierda de otro arreglo.

Tengo la funcion get_line para obtener la linea a comparar con el patrón y la funbcion strindex para buscar el patron.

En la función strindex, en el segundo ciclo for al colocar una coma ; como bloque de ese ciclo, osea el bloque no ejecuta nada solo verifica la condición y decrementa las variables, me da un error extraño al usar el debug de Codeblocks las variables a la segunda vez que se llama a ese for toman valores extraños, solo  a la segunda vez.

Les dejo la función que sirve, pero no entiendo porque la otra versión del código no sirve.

Version que sirve
Código:
#include <stdio.h>
#include <string.h>
#define MAXLINE 1000 /* maximum input line length */

int get_line(char line[], int max);
int strindex(char source[], char searchfor[]);
char pattern[] = "program";     /* pattern to search for */

/* find all lines matching pattern */
int main()
{
    char line[MAXLINE];
    int found = 0;

    while (get_line(line, MAXLINE) > 0)
        if (strindex(line, pattern) >= 0)
        {
            printf("%s", line);
            found++;
        }
    return found;
}

/* getline: get line into s, return length */
int get_line(char s[], int lim)
{
    int c, i;
    i = 0;
    while (--lim > 0 && (c=getchar()) != EOF && c != '\n')
        s[i++] = c;
    if (c == '\n')
        s[i++] = c;
    s[i] = '\0';
    return i;
}

/* strindex: return index of t in s, -1 if none */
int strindex(char s[], char t[])
{
    int i, j, k;

    for (i = strlen(s)-1;  i>=0; i--)
    {
        for (j=i, k=strlen(t)-1; s[j]==t[k]; j--, k--)
            if (k == 0 )
                return i;
    }

    return -1;
}

Version que no sirve fijense en como cambie en strindex el bloque del sgundo for por un punto y coma, el programa compila bien, deberia funcionar
Código:
#include <stdio.h>
#include <string.h>
#define MAXLINE 1000 /* maximum input line length */

int get_line(char line[], int max);
int strindex(char source[], char searchfor[]);
char pattern[] = "program";     /* pattern to search for */

/* find all lines matching pattern */
int main()
{
    char line[MAXLINE];
    int found = 0;

    while (get_line(line, MAXLINE) > 0)
        if (strindex(line, pattern) >= 0)
        {
            printf("%s", line);
            found++;
        }
    return found;
}

/* getline: get line into s, return length */
int get_line(char s[], int lim)
{
    int c, i;
    i = 0;
    while (--lim > 0 && (c=getchar()) != EOF && c != '\n')
        s[i++] = c;
    if (c == '\n')
        s[i++] = c;
    s[i] = '\0';
    return i;
}

/* strindex: return index of t in s, -1 if none */
int strindex(char s[], char t[])
{
    int i, j, k;

    for (i = strlen(s)-1;  i>=0; i--)
    {
        for (j=i, k=strlen(t)-1; s[j]==t[k]; j--, k--)
            ;
        if (k == 0 )
            return i;
    }

    return -1;
}


20  Programación / Programación C/C++ / Que ignifica este include en linux en: 31 Enero 2017, 14:58 pm
#include "../include/cyusb.h"

hacia donde esta apuntado para conseguir la libreria cyusb???
Páginas: 1 [2] 3 4
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines