Добавил:
github.com Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
9
Добавлен:
30.09.2023
Размер:
144.97 Кб
Скачать
    1. Запустим полученный исполняемый файл и убедимся, что он работает корректно

      ./sum

    2. Модернизируем программу main.c, чтобы чтение значений аргументов и запись результата вычисления производилась в файл

      #include <stdio.h>

      #include "sum.h"

      #define fileW "fileW.txt"

      #define fileR "fileR.txt"

      int main(int argc, char *argv[])

      {

          int a, b, c;

          FILE *fW = fopen(fileW, "w");

          FILE *fR = fopen(fileR, "r");

          fscanf(fR, "%d %d", &a, &b);

          c = sum(a, b);

          fprintf(fW, "%d + %d = %d\n", a, b, c);

          fclose(fR);

          fclose(fW);

          return 0;

      }

    3. Создадим файл fileR.txt и запишем в него значения «1 2». Запустим программу и убедимся, что в созданный автоматически файл fileW.txt была произведена запись «1 + 2 = 3»

  1. Индивидуальные задания

    1. Измените разработанную в п. 1.5 программу таким образом, чтобы в результате была получена разность двух чисел.

    2. Добавьте в разработанную в п. 1.9–1.11 программу функцию вычитания чисел. Вместе с суммой чисел, выведите результат разности на экран.

  2. Контрольные вопросы

    1. Для чего предназначен этап препроцессинга. Какова его роль в общем процессе сборки программы?

    2. Для чего предназначен этап компиляции. Какова его роль в общем процессе сборки программы? В чем отличие этапа компиляции от этапа ассемблирования?

    3. Для чего предназначен этап ассемблирования? Какова его роль в общем процессе сборки программы?

    4. Для чего предназначен этап компоновки? Какова его роль в общем процессе сборки программы? В чем отличие этапа компоновки от этапа ассемблирования?

    5. Как происходит сборка программ, состоящих из нескольких файлов? В чем отличие от компиляции программы из одного файла?

    6. Для чего предназначена утилита GDB?

    7. Что такое системный вызов? В чем отличие системного вызова от библиотечного?

    8. Что такое Makefile? Для каких целей они используются? Опишите особенности работы с ними.

    9. В чем особенности работы с файлами в языке С? Можем ли мы заменить тип FILE на int при открытии файла? Ответ поясните.

    10. В чем особенности работы с потоками ввода/вывода в языке С? Какие стандартные потоки ввода/вывода вам известны? Для чего они предназначены?

  1. Список литературы

CITATION ISO22 \l 1033 : , [1],

CITATION Кер01 \l 1049 : , [2],

CITATION htt22 \l 1033 : , [3],

CITATION IEE22 \l 1033 : , [4],

CITATION IEE18 \l 1033 : , [5],

CITATION Fre22 \l 1033 : , [6],

CITATION Ахо20 \l 1049 : , [7],

CITATION Fre19 \l 1033 : , [8],

CITATION Fre221 \l 1033 : , [9],

CITATION sys22 \l 1033 : , [10],

CITATION Ope22 \l 1033 : , [11],

[1]

ISO/IEC, «Programming languages — C,» [В Интернете]. Available: https://web.archive.org/web/20181230041359if_/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. [Дата обращения: 2022].

[2]

Р. Д. Керниган Б., Язык программирования Си, СПб.: Невский диалект, 2001.

[3]

https://github.com/torvalds/linux, «GitHub,» [В Интернете]. Available: https://github.com/torvalds/linux. [Дата обращения: 2022].

[4]

I. C. Society, «IEEE P1003.1 Draft | Portable Operating System Interface (POSIX),» [В Интернете]. Available: https://www.open-std.org/jtc1/sc22/open/n4217.pdf. [Дата обращения: 2022].

[5]

I. a. T. O. Group, «The Open Group Base Specifications Issue 7, 2018 edition | errno,» 2018. [В Интернете]. Available: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/errno.h.html. [Дата обращения: 2022].

[6]

I. V. Free Software Foundation, «GCC, the GNU Compiler Collection,» 2022. [В Интернете]. Available: https://gcc.gnu.org/. [Дата обращения: 2022].

[7]

А. А. В., Компиляторы. Принципы, технологии и инструментарий, Вильямс, 2020.

[8]

I. Free Software Foundation, «Make - GNU Project,» 2019. [В Интернете]. Available: https://www.gnu.org/software/make/. [Дата обращения: 2022].

[9]

I. Free Software Foundation, «GDB: The GNU Project Debugger,» 2022. [В Интернете]. Available: https://www.sourceware.org/gdb/. [Дата обращения: 2022].

[10]

«syscalls(2) — Linux manual page,» [В Интернете]. Available: https://man7.org/linux/man-pages/man2/syscalls.2.html. [Дата обращения: 2022].

[11]

OpenNET, «MAN fscanf (3),» [В Интернете]. Available: https://www.opennet.ru/man.shtml?topic=fscanf&category=3&russian=0. [Дата обращения: 2022].

Соседние файлы в папке OS_labs