dimrub: (Default)
[personal profile] dimrub
Вот задача про Юникс и Си, её придумал пользователь [livejournal.com profile] avysk, а я слегка модифицировал.

Написать на Си коротенькую программу, которая при вызове через конвейер выдаёт фразу "Hello, world!\n", а при вызове с командной строки выдаёт ту же строку, но не один, а два раза.
Короче, вот так:

$ my_prog
Hello, world!
Hello, world!
$ my_prog | cat -
Hello, world!
$

Конечно есть функция isatty, с помощью которой можно просто проверить, запущена ли программа с терминала, вот так:
if(isatty(1))...else...;
Поэтому дополнительное условие: этой функцией (или подобными ей) пользоваться нельзя.

И вот что интересно - пользователь [livejournal.com profile] ilya_dogolazky запостил очень похожую задачу.
Похожую, да решающуюся несколько иначе, хоть и непросто найти отличия в условии.




This account has disabled anonymous posting.
(will be screened if not validated)
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

dimrub: (Default)
Adventures of a somewhat curious character

September 2013

S M T W T F S
12 345 67
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 6th, 2026 12:18 pm
Powered by Dreamwidth Studios