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

    +135

    1. 1
    2. 2
    3. 3
    4. 4
    main(){
    	   char i, *mas[] = {"January","February","March","April","May","June","July","August","September","October","November","December"};
    	   printf("%s%s%s",system("pause>nul"),puts(mas[i-1]),scanf("%d",&i));
    	   }

    Определение месяца по его номеру в 4 строчки.

    byob, 24 Сентября 2011

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

    +143

    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
    #include <unistd.h>
    
    	        main()
    	        {
            int i=0;
            char *cmd[] = { "ls", "-l", (char *)0 };
            char *env[] = { "HOME=/usr/home", "LOGNAME=home", (char *)0 };
            int rr;
            for(i; i<6; i++)
            {
        switch(rr=fork())
        {
    case -1:execl ("/bin/ls", "ls", "-1", (char *)0);break;
    case 0:execle ("/bin/ls", "ls", "-l", (char *)0, env);break;
    case 1:execlp ("ls", "ls", "-l", (char *)0);break;
    case 2:execv ("/bin/ls", cmd);break;
    case 3:execve ("/bin/ls", cmd, env);break;
    case 4:execvp ("ls", cmd);break;
        }
            }
    
    	        }

    - Ну это работают.
    И проверяющий поставил плюс.

    Niceblack, 24 Сентября 2011

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

    +146

    1. 1
    if ((chlen = wcwidth(CharOf(CHDEREF(ch)))) <= 0) {

    хорошо назвали переменную н курсес 5.9 tty_update.c

    ragim, 19 Сентября 2011

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

    +146

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    case '16':
                dm("sixteenth");
                *b_=FULL_NOTE_DURATION_TCK/16 & 0x0F;
                *c_=(FULL_NOTE_DURATION_TCK/16 & 0xF0) >> 8;
            break;

    Человек парсил хексы из строки и задумался немного при копировании блоков в свитче.

    m08pvv, 05 Сентября 2011

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

    +107

    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
    char *getcwd(char *buf, size_t size)
    {
    	if (!buf)
    	{
    		errno = EFAULT;
    		return NULL;
    	}
    	if (size < 2)
    	{
    		errno = ERANGE;
    		return NULL;
    	}
    	buf[0] = '.';
    	buf[1] = '\0';
    	return buf;
    }

    -- Где мы находимся, Сэр?
    -- В корзине воздушного шара.

    P.S. Ссылка на коммит - http://git.altlinux.org/people/ldv/packages/?p=girar.git;a=commit;h=3ff0ce7b00907ba1 dce6406f6

    raorn, 05 Сентября 2011

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

    +147

    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
    789 static LPWSTR concatenate_string_list( LPCWSTR *list, int len )
     790 {
     791     LPCWSTR *t;
     792     LPWSTR str;
     793 
     794     for( t = list; *t ; t++  )
     795         len += strlenW( *t );
     796     len++;
     797 
     798     str = heap_alloc( len * sizeof(WCHAR) );
     799     if (!str) return NULL;
     800     *str = 0;
     801 
     802     for( t = list; *t ; t++ )
     803         strcatW( str, *t );
     804 
     805     return str;
     806 }

    говно от разработчиков wine "http://source.winehq.org/git/wine.git/blob/f4c2317adc44626cefab8d97ba4cc955f29a42a1 :/dlls/winhttp/request.c"
    ребята не знают о существовании StrCatChain или StringCchCatEx
    и никогда не читали Джоэл Сполски про маляра Шлемеля
    "http://www.gnuman.ru/joel/Nazad_k_osnovam/"

    80ab88005a044331, 04 Сентября 2011

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

    +136

    1. 1
    2. 2
    3. 3
    4. 4
    /* My favorite names for boolean values */
    #define  No	0
    #define  Yes	1
    #define  Maybe	2		/* tri-state boolean, actually */

    Исходный код юниксовой утилиты top. Файл boolean.h.

    danilissimus, 29 Августа 2011

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

    +135

    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
    98. 98
    const int volume=100;
    int index=0;
    struct memo
    {   int nach;
    	int size;
    	char name[1];
    }raboch[volume];
    void main()
    {	setlocale(LC_ALL, "rus");
    	int switc=0;
    	int i,r;
    	int p=1;
    	int tekadr=0;
    	int ID=0;
    	int razmer;
    	int zap;
    	int paz;
    	int realproc=0;
    	int vhod=0;
    	int tekad;
    	char c[1024];
    	for(i=1023;i>=0;i--) { c[i]='0';}
    	for(i=99;i>=0;i--) { raboch[i].name[0]=' ';}
    		while(p>0) {
    					cout<<"Выберите действие: 1-Выделить память 2-Очистить 3-Дефрагментировать 4-состояние памяти 5-содежимое памяти 6-выход \n";
    					cin>>r;
    					int k=1;
    					switch(r)
    						{
                            case 1:
    							cout<<"Введите имя процесса:";
    							cin>>raboch[ID].name;
    							cout<<"Введите размер выделяемой памяти в байтах:";
    							cin>>raboch[ID].size;
    							razmer=raboch[ID].size;
    							raboch[ID].nach=tekadr;
    							for(i=tekadr; razmer>0;razmer--) {c[i]=raboch[ID].name[0]; i++; }
    							tekadr+=raboch[ID].size;
    							ID++;
    							realproc=ID;
    							break;;
    						case 2:
                                cout<<"Введите ID убиваемого процесса:";
    							cin>>zap;
    							razmer=raboch[zap].size;
    							for(i=raboch[zap].nach;razmer>0;razmer--) { c[i]='0'; i++;}
    							raboch[zap].name[0]='0';
    							raboch[zap].size=0;
    							tekadr=raboch[zap].nach;
    							realproc--;
    							ID--;
    							index=realproc;
    							break;;
    						case 3:
    					        zap=1;
    							paz=0;
    							   for(i=0;i<=102;i++)
    							     {
    									 if(c[i]!='0')
    									  {  
    									  }
    									 else
    								      {   tekad=i;
    											while(k>0)
    											{
    												  zap++;
    												  if(c[raboch[zap].nach]!='0')
    												   {  paz=raboch[zap].size;
    														for(vhod=raboch[zap].nach;paz>0;paz--) {c[tekad]=c[vhod]; c[vhod]='0'; tekad++; vhod++; }
    														int num;
    														for(num=0;num<100;num++) { if(raboch[num].name[0]=='0') { paz=num; num=100;} else{} }
    															if (raboch[zap].name[0]!=' ') { realproc--;
    																							tekadr=tekad;
    																							raboch[paz].size=raboch[zap].size;
    																							raboch[zap].size=0;
    																							raboch[zap].nach=0;
    																							raboch[paz].name[0]=raboch[zap].name[0];
    																							raboch[zap].name[0]=' ';}
    														else {}	 }
    												  if (raboch[zap].name[0]==' ') { if (realproc>=0) {k=1;} else { k=0;} }
    												  else  { }  }}}   
    							break;;
    						case 4:
    					      for(zap=ID-1;zap>=0;zap--)
    								{cout<<"Имя блока:";cout<<raboch[zap].name;cout<<"\n";
    									cout<<"Размер блока:";cout<<raboch[zap].size;cout<<"\n";
    									cout<<"Начальный адресс:";cout<<raboch[zap].nach;cout<<"\n";}
    							break;;
    						case 5:
    					        cout<<"Введите начальный адресс памяти:";
    							cin>>zap;
    							cout<<"Введите конечный адресс памяти:";
    							cin>>paz;
    							for(i=zap;paz!=i;i++) {cout<<c[i];}
    							cout<<"\n";
    							break;;
    						case 6: p=0;
    								continue;}}}

    Лаба по моделированию работы с памятью. Растягиваем буфер в голове))))

    Horror89, 26 Августа 2011

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

    +134

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    void cmps_genslave(prog src[progs], char slave, char look){	// заполнение списков нелокальных имен
    	int s=0,m=0,l=0;
    	while( src[s].name[0]!=0 && src[s].name[0]!=slave && s<progs)s++;
    	if(!src[s].master) return;
    	if(look==slave){ if(src[s].nonlnum) return; l=s; }else
    		while( src[l].name[0]!=0 && src[l].name[0]!=look && l<progs)l++;
    	if(!src[l].master) return;
    	while(src[m+1].name[0]!=0 && src[l].master==src[m+1].name[0] && m+1<progs)m++;
    	strcpy(src[s].nonlocals+strlen(src[s].nonlocals),src[m].locals);
    	src[s].nonlnum+=src[m].lnum;
    	if(src[m].master) cmps_genslave(src,slave,src[m].name[0]);
    }

    курсовик по проге на втором курсе, изобретаем области видимости

    Venomous, 26 Августа 2011

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

    +146

    1. 1
    2. 2
    3. 3
    4. 4
    #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)
     kill_proc(1,SIGTERM,1);
     #else
    ...

    Оригинальный способ проверить версию ядра линукса...
    Где-то в сырцах реалтековского драйвера для GPIO...

    Necromant, 25 Августа 2011

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