Навигация

Правила

Задания

Задание A

Написать на языке C программу, печатающую на стандартный вывод "Hello, world!" (с переводом строки в конце).

Задание B

Необходимо реализовать примитивный вариант утилиты cat, копирующий символы из stdin на stdout. Для реализации ввода-вывода нужно пользоваться системными вызовами read и write. Функциями из stdio.h (printf, getchar, putchar, ...) можно пользоваться только для вывода отладочной информации и/или сообщений об ошибках.

Hints

Пример работы

Технические детали

#include <iostream>
#include <string>

void cat() {
  std::string s;
  std::cin >> s;
  std::cout << s << "\n";
}

Задания C, D, E

В этом задании вам даётся скомпилированный файл и требуется выяснить, что он делает. Чтобы окончательно отбить желание заниматься дизассемблированием, если оно, вдруг, было (оно не нужно в этом задании), эти программы написаны на C++, скомпилированы со включенными оптимизациями и после этого strip-нуты.

Для того, чтобы сдать задачу, нужно понять, что делает данная вам программа, и написать программу, которая делает то же самое. Если в какой-то момент вам кажется, что вы понимаете, что делает программа, то, скорее всего, вы правы, никаких подстав и крайних случаев там нет.

Данные программы должны работать на любом разумном 64-битном дистрибутиве Linux-а. Если это не так, нужно об этом сообщить. Если по каким-то причинам очень хочется, чтобы эти файлы работали на 32-битном Linux-е или на mac OS, тоже нужно сообщить.

Это задание состоит из трёх независимых задач:

Hints