1. C++ / Говнокод #8253

    +1005

    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
    memsize =
      strlen("cpy_dta.sh ");
    
    if ( memsize >= 4096 ) {
      sprintf( errMsg, "[%s] - ExecScript string too long", func);
      return -7;
    }
    
    sprintf( args, "cpy_dta.sh " );
    
    if ( 0 != ( rc = ::system ( args ) ) )
    {
      // ...
    }

    просто фейспалм.

    Запостил: Dummy00001, 20 Октября 2011

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

    • C++ тут, видимо, только в одноразовом :: ?
      Ответить
      • он не одноразовый, он глобальный.
        но больше ++ нету.
        а по коду могу сказать, что похоже автор взял готовый шаблон и захардкодил имя файла.
        кстати, зачем пробел в 9 строке?
        Ответить
        • там же, зачем и во второй
          Ответить
          • а во второй зачем?
            Ответить
            • показать все, что скрытоДля стеков.
              Ответить
            • бойцы помогали компилятору выровнять .data - сразу сделали литерал длиной 12 байт
              уверен они знали что делали
              при этом они точно использовали нормальный компилятор, который оба вхождения на 2 и 9 строках не будет дублировать, а разместит по одному адресу
              а проверка memsize >= 4096 специально нужна, чтобы поток отъел пару тактов у процессора, в то время как другой поток сделает высокопроизводительные вычисления над переменной args - тогда не надо ни мутексов, ни фенсов, ни тем более безумные ассемблерные вставки не понадобятся.
              кроме того, неизвестно какого типа переменная rc, возможно, это специальный объект с перегруженным оператором =, который перемножает матрицы со сложностью О(1) или даже О(0)

              а может они этим хотели зашифровать какое то послание потомкам, только вот какое?..
              Ответить
              • Эт вы в своем докладе какую-то херень зашифровали О_о
                Ответить
              • а return -7; в шестой строке, видимо, символизирует семь смертных грехов?
                Ответить
      • да. начинали писать прогу С++ники - дописывали Сишники.
        Ответить
        • надо было программистов на коболе брать для проекта, девять женщин родят одного младенца за месяц
          Ответить
    • сру_дата
      Ответить
    • >if ( 0 != ( rc = ::system(args) ) )
      Сравнения мастера Йоды? Нет пути!
      Ответить
      • Сравнение это хорошее, но скрывает туман незнания причины истинные.
        Познать тебе много тонкостей языка нужно, мой юный падаван.
        http://images.wikia.com/starwars/images/e/e0/Yoda_SWSB.jpg
        Ответить

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