Advertisement
techno-

test

Dec 11th, 2022
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.08 KB | None | 0 0
  1. int i,j;
  2.     char* argv[TAMANO];
  3.     char* envp[TAMANO];
  4.     char x[TAMANO];
  5.     char y[TAMANO];
  6.     char entorno[TAMANO];
  7.     bool flagEntorno=true;
  8.     int var;
  9.  
  10.     strcpy(x,getenv("XAUTHORITY"));
  11.     strcpy(y,"XAUTHORITY=");
  12.     strcat(y,x);
  13.    
  14.     if(numtrozos==2){
  15.         envp[0]= (char *)"DISPLAY=:0.0";
  16.         envp[1]=(char *)y;
  17.         envp[2]=NULL;
  18.        
  19.         argv[0]= trozos[1];
  20.         argv[1]= NULL;
  21.     }else{
  22.         if(!isupper(trozos[1][0])){
  23.            
  24.         envp[0]= (char *)"DISPLAY=:0.0";
  25.         envp[1]=(char *)y;
  26.         envp[2]=NULL;
  27.            
  28.         flagEntorno=false;
  29.         argv[0]=trozos[1];
  30.         for(i=2;i<numtrozos && i<20;i++){
  31.             if(trozos[i][0]!='@'){
  32.             argv[i-1]=trozos[i];
  33.               }
  34.             }
  35.             argv[i-2]=NULL;
  36.         }else{
  37.            
  38.             for(i=1;i<numtrozos;i++){
  39.                 for(j=0;j<strlen(trozos[i])-1 && isupper(trozos[i][j]);j++);
  40.                 printf("j es %d y len de trozos[%d] es %d\n",j,i,(int)strlen(trozos[i]));
  41.                 if(j+1==strlen(trozos[i])){
  42.                     strcpy(entorno,trozos[i]);
  43.                     strcat(entorno,"=");
  44.                     printf("Entorno es %s y getenv es %s\n",entorno,getenv(trozos[i]));
  45.                     strcat(entorno,getenv(trozos[i]));
  46.                     printf("Guardo %s en envp[%d]\n",entorno,i-1);
  47.                     //strcpy(envp[i-1],entorno);
  48.                     printf("Hasta aquí llego\n");
  49.  
  50.                 }else break;
  51.             }
  52.             envp[i-1]=NULL;
  53.            
  54.             printf("envp[%d] es %s\n",0,envp[0]);
  55.             printf("envp[%d] es %s\n",1,envp[1]);
  56.            
  57.            
  58.            
  59.         argv[0]=trozos[i];
  60.         printf("i es %d, i-1 es %d\n",i,i-1);
  61.         var=i;
  62.         for(i=i+1;i<numtrozos && i<20;i++){
  63.             if(trozos[i][0]!='@'){
  64.             argv[i-1]=trozos[i];
  65.             printf("Asigno %s a argv[%d]\n",argv[i-1],i-1);
  66.               }
  67.             }
  68.             if(var+1==numtrozos){
  69.             argv[var-2]=NULL;
  70.             } else argv[i-2]=NULL;
  71.            
  72.            
  73.            
  74.            
  75.             }  
  76.         }
  77.        
  78.         for(i = 1; i < numtrozos && trozos[i][0] != '@' ; i++);
  79.             if(i<numtrozos){
  80.             if(trozos[i][0] == '@'){
  81.                 char *prioridad;
  82.                 int prioridadint;
  83.                 prioridad = trozos[i] + 1;
  84.                 prioridadint= atoi(prioridad);
  85.                 setpriority(PRIO_PROCESS,getpid(),prioridadint); //getpid() o 0
  86.                 }
  87.             }
  88.            
  89.             for(i=0;i<3;i++){
  90.                 printf("argv[%d] es %s\n",i,argv[i]);
  91.                 printf("envp[%d] es %s\n",i,envp[i]);
  92.                 }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement