- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
// man sendfile
int main (int argc, char **argv, char **envp) {
while(
(
argc < 0 // true if all ok, false on first iter
||
(
argc != 2 // true if error
&&
(printf("usage %s filename\n", argv[0]) && 0 == (argc = 0))// show error (true)
) // true if error, and argc == 0
||
(
((argc = open(argv[1], O_RDONLY) * -1) < 0) // false if error
||
(printf("cannot open %m\n") && 0 == (argc = 0))// show error (true)
)
) // true if all ok, also argc != 0
&&
(
argc < 0 // if open success this is true
&&
(read(argc * -1, memset(envp[1], 0, 1025), 1024) > 0 && printf("%s", envp[1])) || (close(argc * -1))
)
) ;
}
absolut 09.12.2010 22:41 # 0
Anonimous 09.12.2010 22:48 # 0
gegMOPO4 09.12.2010 23:49 # +2
3.14159265 10.12.2010 19:26 # 0
не удивлюсь, что им был выигран какой-нить спор.
плюсану за оригинальность
gegMOPO4 10.12.2010 20:30 # +2
Во всяком случае здесь ему не место. За это и минусанул.
TarasB 13.12.2010 12:51 # +1
funny_falcon 14.12.2010 00:20 # +1
Крута, имхо.
xaionaro 14.12.2010 20:21 # 0
Мистер Хэнки 10.12.2010 03:50 # 0
хм, и часто ли такое бывает?
Anonimous 10.12.2010 06:02 # +2
задача была (понты как точно выразился уважаемый gegMOPO4): вывести содержимое файла на консоль с проверками при помощи одного пустого цикла и не объявляя никаких переменных
Мистер Хэнки 10.12.2010 15:55 # 0
gegMOPO4 10.12.2010 16:08 # 0
absolut 10.12.2010 17:58 # 0
TarasB 10.12.2010 11:28 # −6
А на Паскале такое не скомпилится! Такой ужас можно написать только на Си! Си - это настоящее недоразумение!
xaionaro 10.12.2010 11:33 # 0
KirAmp 10.12.2010 11:52 # +2
xaionaro 10.12.2010 12:16 # +4
bugmenot 10.12.2010 11:53 # 0
Хотя что это я, сишникам типизированных ЯВУ в жизни не понять...
xaionaro 10.12.2010 12:19 # 0
bugmenot 10.12.2010 12:49 # 0
изначальное допущение порочно, нет?
я даже в интернетах сайт видел, так и называется -- говнокод :)
Oleg_quadro 13.12.2010 12:39 # 0
Это приводит вот к чему — новичок и профессионал пишут одинаково, следовательно новичок может понимать, что написал профессионал.
Так хочет создатель Питона, и это мнение имеет право жить.
Лично я не говорю, что это хорошо. Я говорю, что это НЕ плохо.
absolut 13.12.2010 14:13 # +2
Умножение через сложение уже нельзя ?
Oleg_quadro 13.12.2010 15:27 # 0
однако ж, код должен быть понятен, как профессионалу, так и новичку.
Я, если что, не Питонист.
Анонимус 13.12.2010 16:44 # 0
принцип Перла: "есть тысяча и один способ сделать что-либо. И еще десяток можно придумать".
принцип ПХП: "есть только один и только один способ сделать что-либо. И способ этот -- через жопу"
принцип Java: "есть только один официальный способ сделать что-либо. Но он так не популярен, что им никто не пользуется. Еще есть 44 способа сделать тоже самое, с использованием сторонних опен-сурс библиотек. Обычно пользуются ими"
Принцип C# "есть три способа сделать что-либо руками: для бывших сишников, выбвших джавистов и бывших ВБшников. еще три сделать это мышкой. еще один -- визардом. Причем последний -- рекомендуемый".
3.14159265 10.12.2010 19:26 # +5
ты так говоришь будто это хорошо
TarasB 13.12.2010 15:35 # 0
3.14159265 13.12.2010 17:28 # +2
Керниган?
Ритчи?
обычно на крупных проектах есть оговоренный стиль написания кода: как скобки ставить, как переменные именовать итд.
TarasB 13.12.2010 19:32 # −1
bugmenot 10.12.2010 16:11 # +2
YA_RDONLY!
3.14159265 15.12.2010 11:38 # +2
Dummy00001 10.12.2010 20:43 # 0