74 lines
2.4 KiB
Markdown
74 lines
2.4 KiB
Markdown
|
|
## letsbegin
|
|||
|
|
|
|||
|
|
Копия README.md на сайте `https://timp.pw/121/lab0_letsbegin`
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
Пользователи VM
|
|||
|
|
user/user
|
|||
|
|
root/root
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Задачи:
|
|||
|
|
|
|||
|
|
* Развернуть ВМ `debian 11`.
|
|||
|
|
* shell intro
|
|||
|
|
* потыркать gcc, vim/gedit/code (visual studio code), man
|
|||
|
|
* Вспомнить/почитать про указатели в C
|
|||
|
|
|
|||
|
|
* написать функции
|
|||
|
|
* helloworld -- программа печатающая helloworld ^_^
|
|||
|
|
* написать функцию mystrlen (функция, печатающая длину строки)
|
|||
|
|
Интерфейс функции:
|
|||
|
|
```
|
|||
|
|
int mystrlen(const char *s);
|
|||
|
|
```
|
|||
|
|
* написать функцию mystr_idx,
|
|||
|
|
которая находит индекс строки substr в строке str или -1, если такой подстроки нет
|
|||
|
|
Интерфейс функции:
|
|||
|
|
```
|
|||
|
|
int mystr_idx(char *str, char *substr)
|
|||
|
|
```
|
|||
|
|
Примеры работы:
|
|||
|
|
mystr_idx("helloworld", "world") == 5
|
|||
|
|
mystr_idx("helloworld", "helloworld") == 0
|
|||
|
|
mystr_idx("helloworld", "foo") == -1
|
|||
|
|
|
|||
|
|
* sum (функция должна суммировать int-массив)
|
|||
|
|
* fibonachi
|
|||
|
|
|
|||
|
|
|
|||
|
|
* Написать на C программу `wcl`, которая будет печатать количество строк в файлах на стандартный вывод.
|
|||
|
|
|
|||
|
|
В качестве аргументов программе `wcl` передаётся один или несколько путей к файлам.
|
|||
|
|
На выход печатается количество строк и имя файла (разделённые символом \t).
|
|||
|
|
|
|||
|
|
Примеры работы:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
$ ./wcl ./test/wiki_ci
|
|||
|
|
3335 ./test/wiki_ci
|
|||
|
|
|
|||
|
|
$ ./wcl ./test/wiki_ci ./test/nullfile
|
|||
|
|
3335 ./test/wiki_ci
|
|||
|
|
0 ./test/nullfile
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
*ВАЖНО*: Уточнение для самых хитрых. Использовать system/execve для запуска внешних утилит нельзя!!!!1111адинадинадин
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
Вам могут понадобится функции:
|
|||
|
|
|
|||
|
|
* fopen(3)
|
|||
|
|
* fread(3)
|
|||
|
|
* fclose(3)
|
|||
|
|
* feof(3)
|
|||
|
|
|
|||
|
|
Могут пригодится утилиты:
|
|||
|
|
* gcc(1) -- компилятор
|
|||
|
|
* diff(1) -- утилита для поиска различий между двумя текстовыми файлми
|
|||
|
|
может пригодится для тестов
|
|||
|
|
* rm(1) -- утилита для удаления файлов
|
|||
|
|
|
|||
|
|
|