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

    +121

    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
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    #include "uni.h"
    
    int getopt_long(int argc, char *const argv[],const char *optstring,const struct option *longopts, int *longindex);
    int getopt__long_only(int argc, char *const argv[],const char *optstring,const struct option *longopts, int *longindex);
    int chown(const char *path, uid_t owner, gid_t group);
    uid_t getuid(void);
    int mkdir(const char *pathname, mode_t mode);
    gid_t getgid(void);
    
    char *dirname;
    mode_t perm;
    uid_t owner;
    gid_t group;
    
    int main(int argc,char **argv){
      owner=getuid();
      group=getgid();
      perm=0600;
    char *pEnd;
    char *dirname=(char*)malloc(16);
      if(dirname==NULL){fprintf(stderr, "out of memory!\n");return -1;}
       memset( dirname,'\0',16); 
       strcat(dirname,argv[argc-1]);
    struct option longopts[] = {
      { "mode", required_argument, NULL, 'm' },
      { "parents", NULL, NULL, 'p'},
      { "verbose", required_argument, NULL, 'v'},
      { "context", required_argument, NULL, 'c'},
      { "help", NULL, NULL, 'h'},
      { "version", NULL, NULL, 'r'},
    { 0, 0, 0, 0 } 
    };
    char c;
    while((c=getopt_long(argc,argv,"m:p:v:c:r:h",longopts,NULL)) != -1) {
      switch (c) {
        case 'm':
          perm=strtol(optarg,&pEnd,8);
          printf("%s\n",pEnd);
          break;
        case 'p':
          if(rmdir(dirname)<0){
            fprintf(stderr, "don't manage to delete folder!\n");return -1;
          }
          break;
        case 'v':
          if(mkdir(dirname,perm)<0){
            fprintf(stderr, "mkdir: cannot create directory `%s`: file exists\n",dirname);return -1;
          } else {
            printf("mkdir: created directory `%s`\n",dirname);
            return 0;
          }
          break;
        case 'c':
          break;
        case 'h':
          printf("Usage: mkdir [OPTION]... DIRECTORY...\n");
          printf("Create the DIRECTORY(ies), if they do not already exist.\n");
          printf("\n");
          printf("Mandatory arguments to long options are mandatory for short options too.\n");
          printf("  -m, --mode=MODE   set file mode (as in chmod), not a=rwx - umask\n");
          printf("  -p, --parents     no error if existing, make parent directories as needed\n");
          printf("  -v, --verbose     print a message for each created directory\n");
          printf("  -Z, --context=CTX  set the SELinux security context of each created\n");
          printf("                      directory to CTX\n");
          printf("      --help     display this help and exit\n");
          printf("      --version  output version information and exit\n");
          printf("\tAuthor AliceGoth\n");
          return 0;
          break;
        case 'r':
          printf("\tMy own mkdir\n");
          printf("\tVersion 1.0\n");
          printf("\tAuthor AliceGoth\n");
          printf("\tEmail [email protected]\n");
          break;
        case 1:

    Мой mkdir

    Запостил: AliceGoth, 07 Июля 2012

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

    • Кстати я и Alice и AliceGoth
      Ответить
    • > Мой mkdir
      > case 'p':
      > if(rmdir(dirname)<0)
      O_o. WTF!?
      Ответить
    • Coreutils - пиши свой, пиши свой полностью.
      Ответить
      • lfs отдыхает

        Надо начать со своего компилятора C
        Ответить
        • *разогревает дуговую печь и готовит песок...
          Ответить
        • С ассемблера и компоновщика, ага.

          Да и вообще сначала надо компьютер собрать из телевизора, радио, скотча и зубочисток.
          Ответить
    • Это задача с книги
      Ответить
      • >Это задача с книги
        >printf("\tAuthor AliceGoth\n");
        Дело Дениса Попова живее всех живых: BolgenOS на ГК, теперь и в исходниках.

        P.S. с книги - это каникулы, бле@ть!
        Ответить
    • прошелся по всем говнокодам автора и вынес вердикт:

      ПИШИ ХУЙНЮ @ ВЫКЛАДЫВАЙ НА ГОВНОКОД
      Ответить
      • причем свою, в стиле "reinvent the wheel"
        Ответить
        • точно, хотя вещи вроде «парсер xml на pure C» — это вроде сборки колеса из зубочисток и пластмассовых стяжек
          Ответить
          • Изобретение квадратного колеса.
            Ответить
    • printf("\tEmail [email protected]\n");

      Oh, exploitable!
      Ответить
      • Бегом регаться на порносайтах
        Ответить
      • http://my.mail.ru/inbox/aliceraubritter/
        Ответить
        • Не хочу ничего сказать, но он же упоротый!
          Ответить
        • >Valkyria Raubritter задал вопрос «Почему люди рождаются против своей воли я не хотел рождатся, а меня родили, почему так?»
          Ответить
          • Вот обидится человек на вас, и появится тут еще один орлежкоид...
            Ответить
          • мои родители думали, что родится мальчик, а родился я (ц)
            Ответить
          • а вообще мне другое нравится:
            http://otvet.mail.ru/question/77251545/
            Ответить
            • >6 дней назад

              Значит интернет там есть
              Ответить
            • Классический бойан:
              Посмотрев тайваньский сериал о сверхъестественном, четверо китайских подростков съели дыню, начиненную крысиным ядом, чтобы "отправиться путешествовать в ад". Они оставили записку со словами: "Если в аду так же плохо, как здесь, то мы вернемся". Двоих удалось вернуть, остальным, видимо, там понравилось.
              Ответить

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