Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.09.2012, 11:32   #1
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию Системные вызовы в Linux

В этой теме я буду выкладывать демонстрационные примеры по системным вызовам в Linux.

На данный момент работаю по книгам:
- Linux. Системное программирование. Роберт Лав, СПб.: Питер, 2008
- Linux System Programming by Robert Love, 2007 (ISBN-10: 0-596-00958-5, ISBN-13: 978-0-596-00958-8)
- The C programming Language by Brian W. Kernighan and Dennis M. Ritchie (ISBN 0-13-110362-8 (paperback), ISBN 0-13-110370-9 )

Друзья, если у вас будут замечания, предложения по улучшению кода, то высказывайте своё мнение. Будут примеры, которые нужно будет оценивать по критерию профессиональной разработки ПО. То есть примеры с полной защитой от некорректных входных данных, примеры с тестовыми лесами и примеры, к тестированию которых привлечены сторонние средства. Но это позже... А сейчас начнём с простого.

Инструкция по сборке программ:

Пусть у нас установлены:
- компилятор gcc
- файловый менеджер - Midnight Commander
- у меня Linux OpenSuse 11.4 установлен на виртуальной машине VirtualBox под Window 7

Итак, инструкция по сборке программ:
- открываем окно терминала (для дистрибутива OpenSuse: кликаем правой кнопкой по рабочему столу --> выбираем Run Command --> набираем: Terminal --> в выпадающем списке выбираем: Konsole. Terminal)
- запускаем Midnight Commander, для этого: набираем в командной строке: mc --> нажимаем Enter.
- саздаём папку для программ, для этого: нажимаем F7 --> вводим имя для папки программ, например: progs --> нажимаем Enter
- переходим в созданную папку
- в созданной папке создаём папку для первой демонстрационной программы и называем её: read_write
- переходим в созданную папку
- создаём файл, для этого: нажимаем Shift+F4 --> копируем текст программы:

Копируем входной поток в выходной (функции read, write)
Код:
#include <stdio.h>
#include "unistd.h"

main()  /* copy input to output */
{
   char buf[BUFSIZ];
   int n;

   while ((n = read(0, buf, BUFSIZ)) > 0)
       write(1, buf, n);
   return 0;
}
Примечание. Создать файл можно, набрав в командной строке: "> read_write.c" (без кавычек). А чтобы открыть для редактирования, нужно: подсветить файл --> нажать F4

- сохраняем текст файла, для этого: нажимаем F2 --> вводим имя файла, например: read_write.c
- выходим из файла, для этого: нажимаем F10
- компилируем программу, для этого: в командной строке (внизу Midnight Commander'a) набираем:
Цитата:
gcc ./read_write.c
- результаты компиляции можно посмотреть, нажав Ctrl+O (такая же комбинация для возврата обратно)
- в результате компиляции появился исполняемый файл a.out
- после запуска a.out из неё можно выйти, нажав Ctrl+C (для VirtualBox нужно использовать левый Ctrl, так как правый Ctrl зарезервирован)

Последний раз редактировалось 8Observer8; 14.09.2012 в 11:40.
8Observer8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызовы конструктора копирования rmv240899 Общие вопросы C/C++ 11 11.06.2012 13:07
Системные вызовы Linux| C Демик Помощь студентам 1 16.04.2012 23:29
Непонятные вызовы AfterScroll вTIBDataset sdsfy БД в Delphi 5 03.09.2011 01:49
Системные вызовы... bek@rt Win Api 2 03.05.2007 02:48