Advertisement
Guest User

ayy carumba

a guest
Dec 11th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.42 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include <sys/types.h>
  5. #include <unistd.h>
  6. #include <sys/wait.h>
  7. #include <sys/types.h>
  8.  
  9. int main(int argc, char *argv[])
  10. {
  11.     int status;
  12.     if(argc!=2)
  13.     {
  14.         fprintf(stderr,"Error1\n");
  15.         exit(1);
  16.     }
  17.     int length=strlen(argv[1]);
  18.     if (length==1)
  19.     {
  20.         return argv;
  21.     }
  22.     if(length>20)
  23.     {
  24.         fprintf(stderr,"Error2\n");
  25.         exit(1);
  26.     }
  27.     if (length%2==0)
  28.     {
  29.         char *tab1 [length/2];
  30.         char *tab2 [length/2];
  31.         printf("Jestem tu 1\n");
  32.         strncpy(tab1,argv[1],length/2);
  33.         strncpy(tab2,argv[1]+length/2,length/2);
  34.         //printf("%s\n",tab1);
  35.         //printf("%s\n",tab2);
  36.  
  37.         //Pierwszy potomek
  38.         pid_t cpid = fork();
  39.         if (cpid>0)
  40.         {
  41.             //Drugi potomek
  42.             pid_t ccpid = fork();
  43.             if (ccpid>0)
  44.             {
  45.                 waitpid(cpid,&status,0);
  46.                 waitpid(ccpid,&status,0);
  47.                 printf("%d\t%d\t%s\n",getpid(),cpid,tab1);
  48.                 printf("%d\t%d\t%s\n",getpid(),ccpid,tab2);
  49.             }
  50.             else
  51.             {
  52.                 //execlp(argv[0],argv[0],tab2);
  53.                 int exec2 = execvp(argv[0],tab2);
  54.                 printf("exec2=%d\n",exec2);
  55.             }
  56.         }
  57.         else
  58.         {
  59.             //execlp(argv[0],argv[0],tab1);
  60.             int exec1 = execvp(argv[0],tab1);
  61.             printf("exec1=%d\n",exec1);
  62.         }
  63.  
  64.     }
  65.     if (length%2==1)
  66.     {
  67.         char tab1[length/2];
  68.         char tab2[length/2+1];
  69.         printf("Jestem tu 2\n");
  70.         strncpy(tab1,argv[1],length/2);
  71.         strncpy(tab2,argv[1]+length/2,length/2+1);
  72.         //printf("%s\n",tab1);
  73.         //printf("%s\n",tab2);
  74.     }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement