2013-09-29 7 views
1

Что мне нужно сделать, это mimic std :: cout с помощью системных вызовов.Как использовать системные вызовы C++

Я видел функцию syscall(), которая использует число для системного вызова, функцию system(), которая использует строку с командой и system_call(), которая работала для кого-то здесь в stackoverflow, но она не указала заголовочные файлы или что-то еще, так что это не сработало для меня.

Я не ожидаю, что вы его запрограммируете для меня, поскольку это домашнее задание, но мне бы хотелось, чтобы некоторые подсказки о том, что это лучший способ обойти его, какие файлы заголовков использовать и функции использовать и изучите с большей глубиной. Я не знаю различий между этими функциями, но в идеале я хотел бы найти функции C++ 11.

Я нашел неясную информацию об этих функциях, поэтому мне не удалось сместить код.

+1

Поскольку это домашнее задание, есть ли какая-то особая причина, по которой вы не спросили своего преподавателя/лектора об этом одном и том же вопросе? Вы пропустили этот класс? – kfsone

+0

Для чего это платформа? –

+0

Я в Linux. В частности, расбы. Я не пропустил класс. Я просто пытаюсь сделать это сегодня. Поскольку в воскресенье не хотелось беспокоить учителя. Я думал, что могу опубликовать этот вопрос здесь и получить помощь, так как я не нашел ничего полезного в Интернете. –

ответ

2

Системные вызовы, такие как API, относятся к операционной системе (ОС).

Чтобы использовать API, вам необходимо будет включить соответствующий файл заголовка и ссылку с соответствующими библиотеками для вашей системы.

Снова язык C++ не охватывает функциональные возможности платформы, и вам нужно будет искать в Интернете, чтобы найти API для своей платформы.

+0

забыл упомянуть об этом. Я в Linux. в частности, распбей. –

2

Что мне нужно сделать, это mimic std :: cout, используя системные вызовы.

Вы хотите вызвать системный вызов write(2) который является номер системного вызова 4, на стандартный вывод дескриптора файла, который является дескриптор файла 1.

чтения:

$ man 2 syscall 
$ man 2 syscalls 
$ man 2 write 
Смежные вопросы