> For the complete documentation index, see [llms.txt](https://dimitar-minchev.gitbook.io/linux-system-programming/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dimitar-minchev.gitbook.io/linux-system-programming/02_programming/14_programming_exercise.md).

# Упражнение върху тема програмиране

Упражнете материалите от темата, като реализирате представените по-долу проекти.

## Multi Add

Напишете програма **multi-add.c**, която взима едно или повече числа като входни аргументи, след това изчислява общата сума и отпечатва отговора на стандартния изход. Компилирайте програмата и я изпълнете. Компилирайте. Опитайте отстраняване на грешки посредством дебъгера.

## Reverse Test

Напишете програма **reverse-test.c**, която чете низ от клавиатурата и го отпечатва наобратно. За да обърнете входния низ, трябва да използвате библиотеката **reverse**, която е предоставена в **/usr/lib/libreverse.so**. Функцията, която трябва да използвате, е:

```c
void inplace_reverse(char * str)
```

Имате всички източници, за да можете да компилирате и свързвате библиотеката статично или можете да използвате споделената библиотека **reverse** от **/usr/lib/libreverse.so**.
