1. Си / Говнокод #3193

    +136

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    int check_process(pid_t pid, char *search) {
      char file[1024], buf[1024];
      FILE *FH=NULL;
      int rc, ret=0;
    
      snprintf(file, 1024, "/proc/%d/cmdline", pid);
      rc = check_file(file);
      if (!rc) {
        // cmdline exists
        ret = 1;
        if (search) {
          // check if cmdline contains 'search'
          FH = fopen(file, "r");
          if (FH) {
    	bzero(buf, 1024);
    	while(fgets(buf, 1024, FH)) {
    	  char *p;
    	  while((p = memchr(buf, '\0', 1024))) {
    	    *p = 'X';
    	  }
    	  buf[1023] = '\0';
    	  if (strstr(buf, search)) {
    	    ret = 0;
    	  }
    	}
    	fclose(FH);
          }
        } else {
          ret = 0;
        }
      } else {
        ret = 1;
      }
      return(ret);
    }

    Суровые калифорнийские студенты суровы.

    Запостил: raorn, 11 Мая 2010

    Комментарии (1) RSS

    • За использование функций задающих максимальный размер можно только похвалить.
      Но вот поиск в файле кривоват.
      Ответить

    Добавить комментарий