Помогите пожалуйста решить задачу!

------------------
Есть текстовый файл неопределенной длины- стандартный ввод(stdin), нужно отсортировать его строки в лексикографическом порядке по возрастанию и вывести их на стандартный вывод(stdout).

Программа должна запускаться из командной строки и считывать строки текста пока пользователь не сигнализирует о конце файла(стандартного ввода)комбинацией Ctrl+D (unix)или Ctrl+Z (windows).
Необходимо использовать динамическую память для хранения считываемых строк, так как заранее не известно их количество.
Программа сортирует считанные строки любым алгоритмом сортировки и выводит их на stdout.
Лексикографическое сравнение строк:
"ABC"<"ABCD","ABC"="ABC","ABC"<"ABD"
Для его выполнения можно воспользоваться функцией strmcp().