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

    +3

    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
    // https://github.com/julycoding/The-Art-Of-Programming-By-July/blob/master/ebook/code/c/1.1%EF%BC%9A%E5%B7%A6%E6%97%8B%E8%BD%AC%E5%AD%97%E7%AC%A6%E4%B8%B2.c
    
    #include <stdio.h>
    #include <string.h>
    //字符串旋转问题,例如abcdef 左旋2位 变成 cdefab
    
    //暴力移位法
    void leftShift1(char * arr, int n)
    {
        size_t tmpLen = strlen(arr);
        char tmpChar;
        int i, j;
        if (n >= 0)
        {
            for (i = 0; i < n; i++)
            {
                tmpChar = *arr;
                for (j = 0; j < tmpLen - 1; j++)
                {
                    *(arr + j) = *(arr + j + 1);
                }
                *(arr + tmpLen - 1) = tmpChar;
            }
        }
        else
        {
            for (i = 0; i < -n; i++)
            {
                tmpChar = *(arr + tmpLen - 1);
                for (j = tmpLen - 1; j > 0; j--)
                {
                    *(arr + j) = *(arr + j - 1);
                }
                *arr = tmpChar;
            }
        }
    }

    Копаясь в гитхабе, нашел я тут The Art Of Programming By July, написанный каким-то китайцем.
    https://github.com/julycoding/The-Art-Of-Programming-By-July

    j123123, 18 Августа 2017

    Комментарии (5)
  2. Си / Говнокод #23275

    +1

    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
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    static inline void set0b (const uint8_t at, uint64_t bm[static 4])
    {
      bm[at / 64] &= ~(1ULL << (at % 64));
    }
    
    static inline  void set1b (const uint8_t at, uint64_t bm[static 4])
    {
      bm[at / 64] |= 1ULL << (at % 64);
    }
    
    static inline void inv_b (const uint8_t at, uint64_t bm[static 4])
    {
      bm[at / 64] ^= 1ULL << (at % 64);
    }
    
    
    static inline uint8_t find_empt_pos (const uint64_t bm[static 4])
    {
      if (bm[0] != UINT64_MAX)
      {
        return __builtin_ctzll(~bm[0]) + 64 * 0;  // __builtin_ctzll - https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html
      }
      if (bm[1] != UINT64_MAX)
      {
        return __builtin_ctzll(~bm[1]) + 64 * 1;
      }
      if (bm[2] != UINT64_MAX)
      {
        return __builtin_ctzll(~bm[2]) + 64 * 2;
      }
      if (bm[3] != UINT64_MAX)
      {
        return __builtin_ctzll(~bm[3]) + 64 * 3;
      }
      fprintf(stderr, "ERROR! No empty space!\n");
      exit (-1);
    }
    
    static inline uint8_t allocate_ll (uint64_t bm[static 4])
    {
      uint8_t tmp = find_empt_pos (bm);
      set1b (tmp, bm);
      return tmp;
    }
    
    static inline void inject(const uint8_t prev_p, const uint8_t next_p, const uint8_t at, struct ll_data a[static 256])
    {
      a[next_p].ll.prev = at;
      a[prev_p].ll.next = at;
    
      a[at].ll.prev = prev_p;
      a[at].ll.next = next_p;
    }
    
    static inline void remove_betw(const uint8_t prev_p, const uint8_t next_p, struct ll_data a[static 256])
    {
      a[prev_p].ll.next = next_p;
      a[next_p].ll.prev = prev_p;
    }
    
    static inline void remove_at(const uint8_t at, struct ll_data a[static 256], uint64_t bm[static 4])
    {
      uint8_t prev_t = a[at].ll.prev;
      uint8_t next_t = a[at].ll.next;
    
      set0b (at, bm);
    
      a[at].ll.prev = next_t;
      a[at].ll.next = prev_t;
    }
    
    
    void add_elem_next (struct ll_all *a, const uint8_t elm, const int value)
    {
      uint8_t pos = allocate_ll (a->bm);
      inject(elm, a->arr[elm].ll.next, pos, a->arr);
      set_elm (pos, value, a->arr);
    }
    
    void add_elem_prev (struct ll_all *a, const uint8_t elm, const int value)
    {
      uint8_t pos = allocate_ll (a->bm);
      inject(a->arr[elm].ll.prev, elm, pos, a->arr);
      a->arr[pos].data = value;
    }
    
    void rem_elem_next (struct ll_all *a, const uint8_t elm)
    {
      set0b (a->arr[elm].ll.next, a->bm);
      remove_betw (elm, a->arr[a->arr[elm].ll.next].ll.next, a->arr);
    }
    
    void rem_elem_prev (struct ll_all *a, const uint8_t elm)
    {
      set0b (a->arr[elm].ll.next, a->bm);
      remove_betw (a->arr[a->arr[elm].ll.prev].ll.prev, elm, a->arr);
    }

    Тру-царская неанскилльная реализация двусвязного списка внутри массива.
    К сожалению, весь код не помещается, см https://wandbox.org/permlink/Ky8fnuqyE0Ahxftm

    j123123, 18 Августа 2017

    Комментарии (30)
  3. Си / Говнокод #23272

    +1

    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
    // GetBlockingMode возвращает: 1 - nonblocking | 0 - blocking | -1 - error | -2 - timeout reseted!
    
    int GetBlockingMode(int Sock)
    {
    	int iSize, iValOld, iValNew, retgso;
    	iSize = sizeof(iValOld);
    	retgso = getsockopt(Sock, SOL_SOCKET, SO_RCVTIMEO, (char *)&iValOld, &iSize); // Save current timeout value
    	if (retgso == SOCKET_ERROR) return (-1);
    	iValNew = 1;
    	retgso = setsockopt(Sock, SOL_SOCKET, SO_RCVTIMEO, (char *)&iValNew, iSize); // Set new timeout to 1 ms
    	if (retgso == SOCKET_ERROR) return (-1);
    	
    	// Ok! Try read 0 bytes.
    	char buf[1]; // 1 - why not :)
    	int retrcv = recv(Sock, buf, 0, MSG_OOB); // try read MSG_OOB
    	int werr = WSAGetLastError();
    	
    	retgso = setsockopt(Sock, SOL_SOCKET, SO_RCVTIMEO, (char *)&iValOld, iSize); // Set timeout to initial value
    	if (retgso == SOCKET_ERROR) return (-2);
    
    	if (werr == WSAENOTCONN) return (-1);
    	if (werr == WSAEWOULDBLOCK) return 1;
    	return 0;
    }

    cykablyad, 17 Августа 2017

    Комментарии (11)
  4. Си / Говнокод #23271

    +2

    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
    #include <stdio.h>
    main(t,_,a)
    char
    *
    a;
    {
     return!
    0<t?
    t<3?
    main(-79,-13,a+
    main(-87,1-_,
    main(-86, 0, a+1 )
    +a)):
    1,
    t<_?
    main(t+1, _, a )
    :3,
    main ( -94, -27+t, a )
    &&t == 2 ?_
    <13 ?
    main ( 2, _+1, "%s %d %d\n" )
    :9:16:
    t<0?
    t<-72?
    main( _, t,
    "@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+,/+#n+,/#;\
    #q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/+k#;\
    q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!/n{n#'; \
    r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#\
    \
    n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c ;;\
    {nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;\
    #'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/")
    :
    t<-50?
    _==*a ?
    putchar(31[a]):
    main(-65,_,a+1)
    :
    main((*a == '/') + t, _, a + 1 )
    :
    0<t?
    main ( 2, 2 , "%s")
    :*a=='/'||
    main(0,
    main(-61,*a, "!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry")
    ,a+1);}

    виверни свой мозк, бро !

    bahamot, 16 Августа 2017

    Комментарии (16)
  5. Си / Говнокод #23267

    0

    1. 1
    https://github.com/JustKappaMan/SteamKeyGen

    mill_in_chat, 15 Августа 2017

    Комментарии (0)
  6. Си / Говнокод #23254

    0

    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
    #include <stddef.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    void *govno[300] = {NULL};
    
    size_t govnopoindex = 0;
    
    void chisti_govno(void)
    {
      do
      {
        free(govno[--govnopoindex]);
      } while (govnopoindex != 0);
    }
    
    
    char *concat(char *a, char *b)
    {
      char *ptr = malloc(strlen(a)+strlen(b)+4);
      if (ptr == NULL)
      {
        fprintf(stderr, "Huli ty obosralsya, mudak blyad? Ves' heap zasral\n");
        chisti_govno(); // иди под струю мойся
        exit(-1);
      }
      sprintf(ptr, "(%s*%s)", a, b);
      govno[govnopoindex++] = ptr;
      return ptr;
    }
    
    
    char *pow_gen(size_t n, char *a, char *p)
    {
      if (n == 0)
      {
        return a;
      }
      if (n & 1)
      {
        return pow_gen(n >> 1, concat(a, p), concat(p, p));
      }
      else
      {
        return pow_gen(n >> 1, a, concat(p, p));
      }
    }
    
    char* pow_b2(size_t n) {
      return pow_gen(n, "1", "a");
    }
    
    void printfshit(const size_t pow)
    {
      printf("double pow_%zu(double a) {return %s;}\n\n", pow, pow_b2(pow));
    }
    
    
    int main(void)
    {
      printfshit(255);
      chisti_govno();
      return 0;
    }

    http://govnokod.ru/23246#comment388959 - считаю что это заслуживает отдельного говнокода

    j123123, 10 Августа 2017

    Комментарии (107)
  7. Си / Говнокод #23246

    +2

    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
    #include <stddef.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    char *concat(char *a, char *b)
    {
      char *ptr = malloc(strlen(a)+strlen(b)+6);
      if (ptr == NULL)
      {
        fprintf(stderr, "da ty ohuel!\n");
        exit(-1);
      }
      sprintf(ptr, "(%s)*(%s)", a, b);
      return ptr;
    }
    
    char *govno[255] = {"a"};
    
    void printfshit(const size_t pow, const char *mul_stuff)
    {
      printf("double pow_%zu(double a) {return %s;}\n\n", pow, mul_stuff);
    }
    
    void genshit(void)
    {
      //printfshit(0,"1");
      size_t end_ind = 1;
      size_t prev_stop = 0;
      size_t end_ind_tmp = 1;
      while (end_ind < 255)
      {
        for (size_t ind1 = 0; ind1 < end_ind_tmp; ind1++)
        {
          for (size_t ind2 = prev_stop; ind2 < end_ind_tmp; ind2++)
          {
            if ( 
                 ((ind1+1) + (ind2+1) < 256) &&
                 (govno[(ind1+1) + (ind2+1)-1] == NULL)
               )
            {
              govno[(ind1+1) + (ind2+1)-1] = concat(govno[ind1], govno[ind2]);
              end_ind++;
            }
          }
        }
        prev_stop = end_ind_tmp;
        end_ind_tmp = end_ind;
      }
      printfshit(1,govno[0]);
      for (size_t i = 1; i < 255; i++ )
      {
        printfshit(i+1,govno[i]);
        free(govno[i]);
      }
    }
    
    int main(void)
    {
      genshit();
      return 0;
    }

    Кодогенератор, написаный специально для Antervis
    http://govnokod.ru/23227#comment388895

    j123123, 08 Августа 2017

    Комментарии (38)
  8. Си / Говнокод #23237

    0

    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
    #include <stdio.h>
    #include <string.h>
    #include <http_fetcher.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[])
    {
      if(argc != 2) { printf("Using: %s [url]\n", argv[0]); return 1; }
      http_setTimeout(15);
      if( http_setUserAgent("Mozilla/5.0 (Linux; Android 7.0; Pixel C Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/52.0.2743.98 Safari/537.36") == -1)
        http_perror("setUserAgent");
      http_setRedirects(15);
      http_setReferer("http://no-site.ru/");
      
      char *file_name = "";
      if( http_parseFilename(argv[1], &file_name) == -1)
        { http_perror("parseFilename"); return 1; }
      
      printf("Download file: %s\n", file_name);
      
      char *buff = malloc(5000);
      
      if( http_fetch(argv[1], &buff) == -1)
        { http_perror("fetch"); return 1; }
        
      printf("Write on file..\n");
      
      FILE *f = fopen(file_name, "a");
      fprintf(f, "%s", buff);
      fclose(f);
      printf("Successfully written to file \"%s\"\n", file_name);
      
      return 0;
    }

    Блять писал программу а она нихуя не контачит, ёбанная библиотека https не поддерживает!
    Не используйте эту говно библиотеку

    Bro-C, 03 Августа 2017

    Комментарии (0)
  9. Си / Говнокод #23236

    +2

    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
    #define UM8(CONST_FLOAT,CHISLO_INT) \
                     ((CONST_FLOAT+1.0/16)<(1.0/8))?((CHISLO_INT*0)>>3):\
                      (((CONST_FLOAT+1.0/16)<(2.0/8))?((CHISLO_INT*1)>>3):\
                        (((CONST_FLOAT+1.0/16)<(3.0/8))?((CHISLO_INT*2)>>3):\
                          (((CONST_FLOAT+1.0/16)<(4.0/8))?((CHISLO_INT*3)>>3):\
                            (((CONST_FLOAT+1.0/16)<(5.0/8))?((CHISLO_INT*4)>>3):\
                              (((CONST_FLOAT+1.0/16)<(6.0/8))?((CHISLO_INT*5)>>3):\
                                (((CONST_FLOAT+1.0/16)<(7.0/8))?((CHISLO_INT*6)>>3):\
                                  (((CONST_FLOAT+1.0/16)<(8.0/8))?((CHISLO_INT*7)>>3):\
                                    (CHISLO_INT)\
                                   )\
                                 )\
                               )\
                             )\
                           )\
                         )\
                       )

    https://habrahabr.ru/post/334758/

    inho, 02 Августа 2017

    Комментарии (5)
  10. Си / Говнокод #23235

    0

    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
    #include <stdio.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <unistd.h>
    
    int checkFile(char *s)
    {
    	return ( open(s, O_RDONLY, 0) == -1) ? 0 : 1;
    }
    
    int main(int argc, char *argv[])
    {
    	if(argc != 2) { printf("Тут один аргумент важен хуле\n"); return 1; }
    	if(checkFile(argv[1]))
    	{
    		int fd = open(argv[1], O_RDONLY, 0);
    		char buffer[1024];
    		read(fd, &buffer, sizeof(buffer));
    		printf("%s\n", buffer);
    		if( close(fd) == -1) perror("close");
    	}
    	else
    		printf("Файл не существует\n");
    	return 0;
    }

    Моя альтернатива программе cat, отсасывай cat ябучий!!

    Bro-C, 02 Августа 2017

    Комментарии (20)