Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int i,j;
- char* argv[TAMANO];
- char* envp[TAMANO];
- char x[TAMANO];
- char y[TAMANO];
- char entorno[TAMANO];
- bool flagEntorno=true;
- int var;
- strcpy(x,getenv("XAUTHORITY"));
- strcpy(y,"XAUTHORITY=");
- strcat(y,x);
- if(numtrozos==2){
- envp[0]= (char *)"DISPLAY=:0.0";
- envp[1]=(char *)y;
- envp[2]=NULL;
- argv[0]= trozos[1];
- argv[1]= NULL;
- }else{
- if(!isupper(trozos[1][0])){
- envp[0]= (char *)"DISPLAY=:0.0";
- envp[1]=(char *)y;
- envp[2]=NULL;
- flagEntorno=false;
- argv[0]=trozos[1];
- for(i=2;i<numtrozos && i<20;i++){
- if(trozos[i][0]!='@'){
- argv[i-1]=trozos[i];
- }
- }
- argv[i-2]=NULL;
- }else{
- for(i=1;i<numtrozos;i++){
- for(j=0;j<strlen(trozos[i])-1 && isupper(trozos[i][j]);j++);
- printf("j es %d y len de trozos[%d] es %d\n",j,i,(int)strlen(trozos[i]));
- if(j+1==strlen(trozos[i])){
- strcpy(entorno,trozos[i]);
- strcat(entorno,"=");
- printf("Entorno es %s y getenv es %s\n",entorno,getenv(trozos[i]));
- strcat(entorno,getenv(trozos[i]));
- printf("Guardo %s en envp[%d]\n",entorno,i-1);
- //strcpy(envp[i-1],entorno);
- printf("Hasta aquí llego\n");
- }else break;
- }
- envp[i-1]=NULL;
- printf("envp[%d] es %s\n",0,envp[0]);
- printf("envp[%d] es %s\n",1,envp[1]);
- argv[0]=trozos[i];
- printf("i es %d, i-1 es %d\n",i,i-1);
- var=i;
- for(i=i+1;i<numtrozos && i<20;i++){
- if(trozos[i][0]!='@'){
- argv[i-1]=trozos[i];
- printf("Asigno %s a argv[%d]\n",argv[i-1],i-1);
- }
- }
- if(var+1==numtrozos){
- argv[var-2]=NULL;
- } else argv[i-2]=NULL;
- }
- }
- for(i = 1; i < numtrozos && trozos[i][0] != '@' ; i++);
- if(i<numtrozos){
- if(trozos[i][0] == '@'){
- char *prioridad;
- int prioridadint;
- prioridad = trozos[i] + 1;
- prioridadint= atoi(prioridad);
- setpriority(PRIO_PROCESS,getpid(),prioridadint); //getpid() o 0
- }
- }
- for(i=0;i<3;i++){
- printf("argv[%d] es %s\n",i,argv[i]);
- printf("envp[%d] es %s\n",i,envp[i]);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement