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 Temas
Páginas: [1]
1  Programación / Programación C/C++ / Duda minishell en: 3 Abril 2014, 20:34 pm
         Hola buenas, estoy programando una minishell para ir probando con esto de c. Estoy programando en debian con gcc 4.4 .
El comando que estoy intentando emular es grep "model name" < <input_file> .
         El caso es que no consigo hacerlo bien. No tiene mucho misterio, pero creo que me hago un lío con la función dup2(). Creo que no redirecciono bien las salidas, pero por mas que leo en internet no entiendo porque esta mal.

         Les dejo solo un main() con la función. Antes de meterlo en la minishell, programo los comandos en "módulos" diferentes hasta que funcionan debidamente.

         Gracias de antemano, cualquier ayuda es bien recibida. Saludos


Código:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>

int pid=0;
int sys_call_response=0;
int my_pipe[2];
int fd=0;


int main()
{
        char input_file[20];
        scanf("%s", input_file);
        fd =open(input_file, O_CREAT | O_RDWR, 0666);
        char *arguments[3] = {"grep","model name",NULL};
        pid = fork();

        if(pid==0)
        {
                dup2(fd,1);
                sys_call_response = execvp(arguments[0], arguments);
                exit(0);
        }

        else wait(NULL);
        return 0;
}
2  Programación / Java / Duda con ArrayList<> en: 9 Diciembre 2012, 13:47 pm
Buenas, estoy programando en java el juego de las burbujas que tu disparas una burbuja de un color y si la encajas con otras 2 de su mismo color se destruyen, creo que todos lo conocemos.
Tengo dos clases. Una clase principal y otra que se llama Position con solo 2 atributos, int row int col, ya que mi tablero por ahora no es mas que una matriz de chars. En uno de los metodos tengo que realizar el calculo de la trayectoria de la bola y meterlos dentro un ArrayList  :rolleyes:. Sabria resolverlo de otras formas y se me ha ocurrido alguna como pasar los numeros como int dentro de una array normal y ya esta, pero me gustaria que me ayudasen si pueden y me explicasen porque no consigo meter una posicion en mi ArrayList. Se que el codigo es muy largo asi que no se molesten en entenderlo si no quieren. Voy a indicar donde estan los errores, y por favor no pongan solo un codigo, si pueden dejen un poco de teoria para que lo entienda  :-(. Muchas gracias de antemano y Saludos!

Código:
//THIS METHOD JUST STORES IN THE ARRAYLIST THE POSITIONS OF THE SHOOT(complete/just how to add to the arraylist)
public static ArrayList<Position> getTrajectoryToTop(char [][] board, Position shootPosition, int DIR){



[b]ArrayList<Position> list = new ArrayList() ;
//THIS PART IS IN CHARGED OF (DEPENDING ON THE DIRECTION) FULLFILL ALL THE TRAJECTORY OF THE BUBBLE
Position  c = new Position();[/b]


int fic=0;

int desplazamiento = 0; //This will indicate if it is going to the right or to the left

if((DIR<=4 && DIR>0) || DIR==5){
fic=1;
}else if((DIR<0 && DIR>=-4) || DIR==-5){
fic=-1;
}

int fic_counter = fic;
         

//ALL THESE LOOPS ARE FOR GETTING THE POSISITIONS INTO THE -ARRAYLIST- AND TO KNOW WHEN IT HAS TO STOP
switch(DIR){
//THIS IS FOR STRIGHT SHOOT
case  0: for(int i=13; i>=1; i--){
if(board[i][4]!=' '){
break;
}

                        list.add(i,4); //THIS SHOULD BE A POSTION BUT HOW?¿?¿?¿
} break;

default :{

//THIS IFS ARE FOR GETTING IF THE TRAJECTORY IS GOING TO THE LEFT OR THE RIGHT
   if(DIR<4){
    desplazamiento=-1;      //Because it moves to the left
   }else if(DIR<4){
    desplazamiento=1;
   }
   
   
   int initial_col = 4 + (DIR);
       for(int i=13; i>=1; i--){
        if(initial_col>0 && initial_col<8){
        if(desplazamiento==1){
        if(board[i+1][initial_col+1]!=' '){
        break;}
        }else if(desplazamiento==-1){
        if(board[i+1][initial_col-1]!=' '){
        break;
        }
        }

       
        }else if(initial_col==0 || initial_col==8){
        if(board[i+1][initial_col]!=' '){
        break;
        }
        fic_counter=fic_counter*(-1);
        desplazamiento=desplazamiento*(-1);
        }
        initial_col=initial_col+fic_counter;
        [b]list.add(i,initial_col); }[/b]
       }
}


return list;}

Espero que el codigo este claro, he dejado comentarios y si hay algo que no esta convencion y se fijan por favor diganlo que si no no aprendo :)
3  Programación / ASM / DUDA SOBRE LOS PROPIOS LENGUAJES en: 9 Diciembre 2012, 13:11 pm
Hola, tengo una pregunta que me lleva martilleando la cabeza una temporada.
He aprendido un lenguaje de ensamblador bastante sencillito que se llama mips (nivel bastante decente), y ahora estoy aprendiendo x86 para poder aplicarlo a ing. inversa. Mi pregunta es la siguiente, que diferencia hay entre los distintos lenguajes de ensamblador?? Hay uno que sea util y el resto no?? Que utilidad tiene cada uno?? :huh: La verdad es que como casi todos supongo, yo empece programando con los lenguajes de alto nivel, y esto ,a pesar de llevar un tiempo con ello me resulta un poco desconcertante, porque a pesar de todo el tiempo que llevo aprendiendo mips parece que nadie lo usa y sin embargo x86 parece el rey del mambo.
Muchas gracias de antemano y saludos
4  Programación / Scripting / [VBS] Duda basica script en: 27 Noviembre 2012, 00:24 am
Hola buenas,
Primero de todo soy completamente nuevo en scripts, he programado anteriormente en otros lenguajes (java y c). Estoy siguiendo el estupendo tutorial que ha dejado Novlucker. Intenado crear una carpeta, ejecuto el script y se supone que crea la carpeta, pero cuando voy al directorio esta carpeta no esta, sin embargo si vuelvo a ejecutar el script me dice que la carpeta ya esta creada. Estoy un poco confuso sinceramente  :huh:. Igual no tiene el atributo de lectura o de visibilidad. Cualquier ayuda sera bien recibida.
El codigo es este:
Código
  1. Set objfso = createobject("scripting.filesystemobject")
  2. Set Carpeta_creada = objfso.createfolder("C:\Usuarios")
  3.  

Gracias de antemano Saludos.
5  Programación / Java / AYUDA CON PROGRAMA EN JAVA en: 15 Octubre 2012, 20:02 pm
Buenas, soy estudiante de ing. informática y estoy creando un programa que reciba un numero por teclado, y lo transforme a binario y posteriormente a complento a2.
El caso es que, tengo que hacer 2 metodos y devolverlo como String. Hago el paso del integer a binario a traves de un array, pero no se como hacer para que en el main me printee el string  :huh:. Por favor cualquier ayuda será bien recibida, os dejo a continuación el código fuente. Saludos y gracias!

Código:
import java.util.*;

public class integerNumber{



public static void main(String[]args){

Scanner sc = new Scanner(System.in);

System.out.println("Tell me, which number do you want to convert?");

int integerNumber=sc.nextInt();

System.out.println(intToComp2(integerNumber)); //NO ME PRINTEA EL STRING!
}


//METODO QUE PASA DE INTEGER A Comp.A2

public static String intToComp2(int integerNumber){

int i=0;
int[]array;
int j=integerNumber;
int r;
int m=0;
String returneado;

//este bucle calcula la longitud del array
do{
i++;
array=new int[i];

}while((Math.pow(2,i))<=integerNumber);

System.out.println("So I will use " + array.length + " bits");

//este bucle mete en el array el valor del numero en binario
do{
r=j%2;
j=j/2;
array[m]=r;
if(j/2==1){
array[i-1]=1;
}
m++;
}while(j>1);

//esto printea el binario

for(int h=m;h>=0;h--){
System.out.print(array[h]);
}

//este bucle lo pasa a comp.A2

for(int b=0;b<array.length;b++){
if(array[b]==1){
b=b+1;
while(b<array.length){
if(array[b]==1){
array[b]=0;
}else{
array[b]=1;
}
b++;
}

}break;
}


System.out.println();

returneado = array.toString(); //Esto lo pongo para poder convertir el array en string

return returneado;
}
}

Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines