Files
lab0_letsbegin/README.md
2023-03-04 00:00:13 +03:00

2.4 KiB
Raw Blame History

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) -- утилита для удаления файлов