Форум программистов, компьютерный форум, киберфорум
Assembler: Linux
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.59/29: Рейтинг темы: голосов - 29, средняя оценка - 4.59
Asm/C++/Delphi/Py/PHP/VBA
6528 / 1973 / 228
Регистрация: 14.12.2014
Сообщений: 4,124
Записей в блоге: 12
1

Системные вызовы и brk vs sbrk в частности

10.02.2017, 02:04. Показов 5754. Ответов 24

Author24 — интернет-сервис помощи студентам
Изучаю программинг под Linux, в частности системные вызовы
Многочасовые поиски нормального справочника по системным вызовам завершились, по сути, тремя ссылками:
http://linuxdoc.ru/sys-doc.html
http://www.digilife.be/quickre... erence.pdf
http://syscalls.kernelgrok.com/
Всё остальное - примерно то же самое, только с разным дизайном. Ну или учебник какой-нибудь о Unix в целом (хоть и на русском).

Так вот, на практике придётся использовать все 3 справочника...
1. В первом находить нужную функцию и читать её описание (неплохо, что там всё по-русски).
2. Во втором находить номер функции по названию.
3. Третий использовать, когда информации из 1-го недостаточно (там расписано подробнее и кол-во функций значительно больше... и даже исходники есть).

У кого есть, киньте, плиз, ссылкой на удобный, полный, структурированный справочник, в котором будут указаны (важно!) номера функций и значения констант (типа EBADF и т.д.). Что дескриптор стандартного ввода = 0, а вывода = 1 я уже понял, но сдаётся мне, есть там ещё куча подобных штук, искать которые опять же придётся в example'ах на просторах всея интернета, что не очень удобно... А если там ещё и примеры использования будут, то будет вообще супер (хотя не критично).

В частности, вот такой вопрос у меня возник: brk и sbrk вроде разные функции. А номер функции (eax) как будто один и тот же... Как это может быть? В чём подвох? Или система по значению передаваемого параметра определяет (типа > 0x8000000, значит brk, иначе sbrk)?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.02.2017, 02:04
Ответы с готовыми решениями:

Системные вызовы. Получение заголовка консольного окна
Всем доброй ночи! Скоро сессия у тут, наверное очень много постов с просьбой студентов помочь...

Brk, sbrk и прочие системные вызовы
Привет! Изучаю программинг под Linux, в частности системные вызовы :) Многочасовые поиски...

Qt и системные вызовы
Здравствуйте. Задался таким вопросом - можно ли в Qt производить вызов системных вызовов Linux?...

Системные вызовы
Дали задание: • Вывести имя компьютера; • Вывести имя пользователя; • Вывести версию ядра...

24
Заблокирован
10.02.2017, 02:07 2
Цитата Сообщение от Jin X Посмотреть сообщение
brk и sbrk вроде разные функции. А номер функции (eax) как будто один и тот же... Как это может быть? В чём подвох?
sbrk это библиотечная функция построенная на базе brk.
1
Asm/C++/Delphi/Py/PHP/VBA
6528 / 1973 / 228
Регистрация: 14.12.2014
Сообщений: 4,124
Записей в блоге: 12
10.02.2017, 02:16  [ТС] 3
nimazzzy, ну ок, как же мне её вызвать из ассемблера-то?
Мне надо скачать glibc, скомпилить и присоединить к моему .o файл sbrk.o? Или как вообще?

Добавлено через 1 минуту
У меня уже башка пухнет от этих заморочек, жесть какая-то...!
0
Заблокирован
10.02.2017, 02:42 4
Цитата Сообщение от Jin X Посмотреть сообщение
ну ок, как же мне её вызвать из ассемблера-то?
Как и любую другую библиотечную функцию, по имени + линковка.

Добавлено через 5 минут
Цитата Сообщение от Jin X Посмотреть сообщение
Мне надо скачать glibc, скомпилить и присоединить к моему .o файл sbrk.o? Или как вообще?
Зачем? libc на системе стоит. Динамическая линковка есть.

Добавлено через 13 минут
Цитата Сообщение от Jin X Посмотреть сообщение
У меня уже башка пухнет от этих заморочек, жесть какая-то
Почему жесть-то? Так везде, на любой системе работает. Хочешь библиотечную функцию - зовешь по имени, линкуешься с библиотекой. Не хочется - пожалуйста, системные вызовы через syscall. По-другому как бы никак нигде

Добавлено через 2 минуты
Бессмысленный код, вызывающий sbrk:
Assembler
1
2
3
4
5
6
7
8
9
extern sbrk
 
section .text
global main
main:
mov rdi, 100
call sbrk
 
ret
До жести, имхо, тут далековато.
1
Asm/C++/Delphi/Py/PHP/VBA
6528 / 1973 / 228
Регистрация: 14.12.2014
Сообщений: 4,124
Записей в блоге: 12
10.02.2017, 11:39  [ТС] 5
nimazzzy, спасибо, всё начинает проясняться...

Цитата Сообщение от nimazzzy Посмотреть сообщение
Почему жесть-то?
Потому что я всё делаю в Windows (в т.ч. компиляцию), а Ubuntu стоит на виртуалке только для запуска. Т.к. он для меня пока как тёмный лес (установил его дня 3 назад только). И вообще я впервые с этим всем сталкиваюсь
Т.е. если я буду производить компиляцию в Linux'е, то там всё автоматом прилинкуется? Или нужно находить где-то sbrk.o и его прилинковывать ld'ом?

Цитата Сообщение от nimazzzy Посмотреть сообщение
mov rdi, 100
А почему rdi, если это обычная функция? Или туда параметры передаются только в формате ebx, ecx, edx... / rdi, rsi, rdx... а не через push (я пока с 32 битами работаю)?
После выделения памяти, освобождать её нужно перед выходом или нет?

Кстати, где-то мельком прочитал, что в Debian (Ubuntu, значит, тоже) вызывать int 0x80 (или syscall) можно не только передав параметры через регистры, но и передав их через стек (cdecl). Если это так, как же система определяет какой именно способ я использовал?

Цитата Сообщение от nimazzzy Посмотреть сообщение
global main
Под винду при таком названим функции (main) компиляция не создавала точку входа, только _start или явно указывать через -e main. Или в линуксе можно использовать main (без указания -e)?

Добавлено через 22 минуты
nimazzzy, у нас, видимо, какие-то разные ассемблеры (в Ubuntu). Во-первых, as использует AT&T-синтаксис, во-вторых, .globl вместо global и .extern вместо extern...
И когда я линкую всё это дело, он пишет, что функции sbrk нет (undefined reference). Где её искать-то?
0
Заблокирован
10.02.2017, 11:44 6
Цитата Сообщение от Jin X Посмотреть сообщение
Т.е. если я буду производить компиляцию в Linux'е, то там всё автоматом прилинкуется? Или нужно находить где-то sbrk.o и его прилинковывать ld'ом?
Удобнее и проще после компиляции ассемблером, слинковаться gcc. Он автоматически с libc слинкует. Когда использую сишный рантайм, то примерно так компилируюсь:
Bash
1
2
$ nasm -felf64 main.s
$ gcc main.o
Цитата Сообщение от Jin X Посмотреть сообщение
А почему rdi, если это обычная функция? Или туда параметры передаются только в формате ebx, ecx, edx... / rdi, rsi, rdx... а не через push (я пока с 32 битами работаю)?
У меня просто x64 для 32, конечно, через стек.
Цитата Сообщение от Jin X Посмотреть сообщение
Кстати, где-то мельком прочитал, что в Debian (Ubuntu, значит, тоже) вызывать int 0x80 (или syscall) можно не только передав параметры через регистры, но и передав их через стек (cdecl).
Ни разу не слышал про передачу через стек, только регистры всегда использовал.
Цитата Сообщение от Jin X Посмотреть сообщение
Под винду при таком названим функции (main) компиляция не создавала точку входа, только _start или явно указывать через -e main. Или в линуксе можно использовать main (без указания -e)?
Тут дело в том, что как только ты начинаешь линковаться с рантаймом Си, то про _start желательно забыть, так как, все равно самым первым должен теперь будет вызваться сишный рантайм, который инициализирует все, что там ему надо, а потом уже он сам вызовет main.
0
Asm/C++/Delphi/Py/PHP/VBA
6528 / 1973 / 228
Регистрация: 14.12.2014
Сообщений: 4,124
Записей в блоге: 12
10.02.2017, 11:47  [ТС] 7
И ещё... как прикрутить к исходнику на асме h-файл? Вроде можно. Особенно учитывая, что, как я понял, путь к тому же unistd.h разный везде.
0
Заблокирован
10.02.2017, 11:58 8
Цитата Сообщение от Jin X Посмотреть сообщение
И ещё... как прикрутить к исходнику на асме h-файл?
.h файл это совершенно другой язык - С. Ассемблер его просто не поймет.
Цитата Сообщение от Jin X Посмотреть сообщение
Особенно учитывая, что, как я понял, путь к тому же unistd.h разный везде.
А зачем к нему писать путь? Люди, пишущие код на С, просто пишут #include <unistd.h> и файл находится по стандартному пути.
0
Asm/C++/Delphi/Py/PHP/VBA
6528 / 1973 / 228
Регистрация: 14.12.2014
Сообщений: 4,124
Записей в блоге: 12
10.02.2017, 12:15  [ТС] 9
Цитата Сообщение от nimazzzy Посмотреть сообщение
У меня просто x64 для 32, конечно, через стек.
Всё равно не понял. Там другие соглашения, чем в Windows? Не rcx, rdx первые параметры?

Цитата Сообщение от nimazzzy Посмотреть сообщение
Тут дело в том, что как только ты начинаешь линковаться с рантаймом Си, то про _start желательно забыть, так как, все равно самым первым должен теперь будет вызваться сишный рантайм, который инициализирует все, что там ему надо, а потом уже он сам вызовет main.
Так, прикол в том, что мне Сишный рантайм не нужен вообще никак

Цитата Сообщение от nimazzzy Посмотреть сообщение
Удобнее и проще после компиляции ассемблером, слинковаться gcc
А если всё-таки через as, ld слинковать? Я в системе файла sbrk.o не нашёл...

Добавлено через 1 минуту
Цитата Сообщение от nimazzzy Посмотреть сообщение
.h файл это совершенно другой язык - С. Ассемблер его просто не поймет.
Некто говорил, что as использует сишный препроцессор и можно подключать .h к асмовским исходникам.
0
Заблокирован
10.02.2017, 12:17 10
Цитата Сообщение от Jin X Посмотреть сообщение
Там другие соглашения, чем в Windows? Не rcx, rdx первые параметры?
Разумеется, другие rdi, rsi, rdx, и так далее.
Цитата Сообщение от Jin X Посмотреть сообщение
Так, прикол в том, что мне Сишный рантайм не нужен вообще никак
Так не сипользуй sbrk, вот и все!
Цитата Сообщение от Jin X Посмотреть сообщение
ld слинковать? Я в системе файла sbrk.o не нашёл...
Это libc.

Добавлено через 1 минуту
Цитата Сообщение от Jin X Посмотреть сообщение
Некто говорил, что as использует сишный препроцессор и можно подключать .h к асмовским исходникам.
Может быть и так. Я не пользуюсь этой функциональностью, не вижу в ней необходимости. И ассемблирую nasm'ом.
1
Asm/C++/Delphi/Py/PHP/VBA
6528 / 1973 / 228
Регистрация: 14.12.2014
Сообщений: 4,124
Записей в блоге: 12
10.02.2017, 12:19  [ТС] 11
Если не подключать .h, тогда непонятно откуда брать константы (номера функций, коды ошибок и т.д.). В том же NASM'е никаких inc'ов не идёт в комплекте. В MinGW тоже... В самом линуксе (gas), правда, не знаю...

Добавлено через 1 минуту
Цитата Сообщение от nimazzzy Посмотреть сообщение
Так не сипользуй sbrk, вот и все!
А если надо? Я хочу научиться это делать...

Цитата Сообщение от nimazzzy Посмотреть сообщение
Это libc.
Цитата Сообщение от nimazzzy Посмотреть сообщение
Зачем? libc на системе стоит. Динамическая линковка есть.
Не понимаю. Если он стоит, значит sbrk.o (на край sbrk.c) должен же быть...
0
Заблокирован
10.02.2017, 12:31 12
Цитата Сообщение от Jin X Посмотреть сообщение
Если не подключать .h, тогда непонятно откуда брать константы
Из header-файлов ручками, или какой-либо документации.

Добавлено через 1 минуту
Цитата Сообщение от Jin X Посмотреть сообщение
А если надо? Я хочу научиться это делать...
Если надо - то нужен сишный рантайм. Если не нужен сишный рантайм, то пиши без вызовов к нему. Не понимаю

Добавлено через 1 минуту
Цитата Сообщение от Jin X Посмотреть сообщение
Не понимаю. Если он стоит, значит sbrk.o (на край sbrk.c) должен же быть...
Да почему? .o это объектный файл. Как ты связал .so файл с .o? Их при сборке может быть тысяча, а потом они линкуются в одну библиотеку, или исполняемый файл. Ровно как и на винде. Там нет объектников (если не считать статических либ), там dll и exe, которые были собраны из объектников.

Добавлено через 6 минут
Цитата Сообщение от Jin X Посмотреть сообщение
ld слинковать?
Слинкуй:
Bash
1
ld main.o -lc -e main -dynamic-linker /lib/ld-linux.so.2
Одна фигня:
Bash
1
2
3
        linux-vdso.so.1 =>  (0x00007ffeefdc1000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f0cfa16f000)
        /lib/ld-linux.so.2 => /lib64/ld-linux-x86-64.so.2 (0x00007f0cfa55f000)
Ты слинкован с сишной либой. Что, в принципе, верно. Ты же используешь ее функции.
1
Asm/C++/Delphi/Py/PHP/VBA
6528 / 1973 / 228
Регистрация: 14.12.2014
Сообщений: 4,124
Записей в блоге: 12
10.02.2017, 12:55  [ТС] 13
Цитата Сообщение от nimazzzy Посмотреть сообщение
Ни разу не слышал про передачу через стек, только регистры всегда использовал.
http://int80h.org/bsdasm/#system-calls
0
Заблокирован
10.02.2017, 13:50 14
Jin X, спасибо, но я предпочитаю традиционный секс вызов функций ядра
0
Asm/C++/Delphi/Py/PHP/VBA
6528 / 1973 / 228
Регистрация: 14.12.2014
Сообщений: 4,124
Записей в блоге: 12
10.02.2017, 13:54  [ТС] 15
Цитата Сообщение от nimazzzy Посмотреть сообщение
Из header-файлов ручками, или какой-либо документации.
А include'ов для асма вообще нет никаких?

Цитата Сообщение от nimazzzy Посмотреть сообщение
Если надо - то нужен сишный рантайм. Если не нужен сишный рантайм, то пиши без вызовов к нему. Не понимаю
А зачем мне сишный рантайм, если я хочу использовать 1 конкретную функцию из obj-файла?

Цитата Сообщение от nimazzzy Посмотреть сообщение
Их при сборке может быть тысяча, а потом они линкуются в одну библиотеку
Нашёл я libc.a, но толка никакого... Запускаю: ld -L '/usr/lib/x86_64-linux-gnu' -o test.elf test.o -l libc.a
А мне в ответ:
Код
libc.a(iofclose.o): In function `_IO_new_fclose':
(.text+0x288): undefined reference to `_Unwind_Resume'
libc.a(iofclose.o):(.eh_frame+0x13): undefined reference to `__gcc_personality_v0'
libc.a(iofflush.o): In function `_IO_fflush':
(.text+0x173): undefined reference to `_Unwind_Resume'
libc.a(iofflush.o):(.eh_frame+0x13): undefined reference to `__gcc_personality_v0'
libc.a(iofputs.o): In function `_IO_fputs':
(.text+0x188): undefined reference to `_Unwind_Resume'
libc.a(iofputs.o):(.eh_frame+0x13): undefined reference to `__gcc_personality_v0'
libc.a(iofwrite.o): In function `_IO_fwrite':
(.text+0x20d): undefined reference to `_Unwind_Resume'
libc.a(iofwrite.o):(.eh_frame+0x13): undefined reference to `__gcc_personality_v0'
libc.a(wfileops.o): In function `_IO_wfile_underflow':
(.text+0x734): undefined reference to `_Unwind_Resume'
libc.a(wfileops.o):(.eh_frame+0x6b): undefined reference to `__gcc_personality_v0'
libc.a(fileops.o): In function `_IO_new_file_underflow':
(.text+0x45f): undefined reference to `_Unwind_Resume'
libc.a(fileops.o):(.eh_frame+0xa7): undefined reference to `__gcc_personality_v0'
libc.a(backtrace.o): In function `backtrace_helper':
(.text+0x24): undefined reference to `_Unwind_GetIP'
libc.a(backtrace.o): In function `backtrace_helper':
(.text+0x30): undefined reference to `_Unwind_GetCFA'
libc.a(backtrace.o): In function `__backtrace':
(.text+0xbc): undefined reference to `_Unwind_Backtrace'
libc.a(iogetdelim.o): In function `_IO_getdelim':
(.text+0x328): undefined reference to `_Unwind_Resume'
libc.a(iogetdelim.o):(.eh_frame+0x13): undefined reference to `__gcc_personality_v0'
libc.a(fseek.o): In function `fseek':
(.text+0x11d): undefined reference to `_Unwind_Resume'
libc.a(fseek.o):(.eh_frame+0x13): undefined reference to `__gcc_personality_v0'
libc.a(ftello.o): In function `__ftello':
(.text+0x192): undefined reference to `_Unwind_Resume'
libc.a(ftello.o):(.eh_frame+0x13): undefined reference to `__gcc_personality_v0'
libc.a(ioseekoff.o): In function `_IO_seekoff':
(.text+0x318): undefined reference to `_Unwind_Resume'
libc.a(ioseekoff.o):(.eh_frame+0x67): undefined reference to `__gcc_personality_v0'
Может, я не ту (или не так) библиотеку присоединяю?

Добавлено через 54 секунды
А ты говоришь...
Цитата Сообщение от nimazzzy Посмотреть сообщение
До жести, имхо, тут далековато.
Добавлено через 1 минуту
А каком файле (объектном, библиотеке, в буфете...) находится функция sbrk?
Почему я не могу её одну вытащить без сишного рантайма?
0
Заблокирован
10.02.2017, 14:17 16
Цитата Сообщение от Jin X Посмотреть сообщение
А include'ов для асма вообще нет никаких?
Может, есть. Я их никогда не использую.
Цитата Сообщение от Jin X Посмотреть сообщение
А зачем мне сишный рантайм, если я хочу использовать 1 конкретную функцию из obj-файла?
Потому что она в нем лежит. Потому что функция может зависеть от инициализации какой-либо фигни перед началом ее работы.
Цитата Сообщение от Jin X Посмотреть сообщение
Нашёл я libc.a, но толка никакого... Запускаю: ld -L '/usr/lib/x86_64-linux-gnu' -o test.elf test.o -l libc.a
Потому что ты все делаешь ручками, а когда собираешься с сишным рантаймом, то проще попросить за тебя все сделать gcc. Если хочешь ld, то запусти gcc с опцией -v и посмотри, какие он параметры линковщика использует, чтобы собраться.

Добавлено через 22 секунды
Цитата Сообщение от Jin X Посмотреть сообщение
А каком файле (объектном, библиотеке, в буфете...) находится функция sbrk?
в libc.

Добавлено через 6 минут
Цитата Сообщение от Jin X Посмотреть сообщение
Почему я не могу её одну вытащить без сишного рантайма?
А ты можешь вытащить на винде из dll-ки один одинокий printf? потому что это библиотека с набором функци. Ты с ней линкуешься. Существует статическая линковка, с .a файлом, либо вытаскиванием объектного файла из архива. Но я всячески против таких вещей.

Добавлено через 7 минут
На моей системе:
Bash
1
2
3
4
5
6
7
$ ar -t /usr/lib/debug/usr/lib64/libc.a | grep brk
strpbrk.o
strpbrk-c.o
wcspbrk.o
tcsendbrk.o
brk.o
sbrk.o
Можешь линковаться пробовать, объектники есть. Но я всячески такие извращения не поддерживаю. Линукс - это динамическая линковка и нормальная работа рантайма. Если не нужен рантайм, то его вообще не надо трогать, и функции его не трогать, а писать все руками. Либо используешь исключительно сисколы, либо линкуешься со всем, что нужно. Все просто и никакой жести.

Добавлено через 5 минут
Хочешь библиотечную функцию - линкуешься динамически с библиотекой. Не надо ничего выдумывать. Тем более, с libc, которая есть на каждом линухе.
1
Asm/C++/Delphi/Py/PHP/VBA
6528 / 1973 / 228
Регистрация: 14.12.2014
Сообщений: 4,124
Записей в блоге: 12
10.02.2017, 14:24  [ТС] 17
Цитата Сообщение от nimazzzy Посмотреть сообщение
Потому что она в нем лежит. Потому что функция может зависеть от инициализации какой-либо фигни перед началом ее работы.
А разве sbrk – рантаймовская функция? Или libc - это и есть рантайм (типа msvcrt)?
Хотя, в любом случае ничто не мешает ей обратиться к какой-нибудь глобальной рантаймовской переменной. Ну да. Это ж не dll-ка...

Хорошо. Если не использовать библиотеку, а использовать только brk, откуда брать исходный адрес? Посмотрел исходники sbrk.c и дальше по цепочке... там используется переменная _hurd_brk, который изначально присваивается &_end. Вот только что это за _end - непонятно. Концов не найти... Как его определить?
0
Заблокирован
10.02.2017, 14:29 18
Цитата Сообщение от Jin X Посмотреть сообщение
А разве sbrk – рантаймовская функция, а не стороннй библиотеки...?
Она находится в libc. У меня на этот счет есть своя позиция. Это третьесторонняя библиотека. Если я использую ее функцию, то я с ней линкуюсь. К чему внутри нее она конретно относится мне пофигу. Все может поменяться в любой момент. На то она и библиотека. Мое дело просто указать своему приложения - бери вот эту функцию вот оттуда.
0
Asm/C++/Delphi/Py/PHP/VBA
6528 / 1973 / 228
Регистрация: 14.12.2014
Сообщений: 4,124
Записей в блоге: 12
10.02.2017, 14:37  [ТС] 19
_end везде (во всех файлах, в которых есть это слово) объявлен как extern...

Добавлено через 1 минуту
Цитата Сообщение от nimazzzy Посмотреть сообщение
бери вот эту функцию вот оттуда.
Что значит "бери"? Переписать на асме? Я ж говорю: там используется extern-переменная _end, которая нигде не инициализируется. Как узнать текущую позицию brk (или как там правильно выразиться)?

Добавлено через 1 минуту
Цитата Сообщение от nimazzzy Посмотреть сообщение
Она находится в libc
Так, libc - это рантаймовская сишная библиотека и есть? Или нет?

Добавлено через 3 минуты
А вообще, это вроде как не libc, а glibc... нет?
0
Заблокирован
10.02.2017, 15:10 20
Цитата Сообщение от Jin X Посмотреть сообщение
Хорошо. Если не использовать библиотеку, а использовать только brk, откуда брать исходный адрес? Посмотрел исходники sbrk.c и дальше по цепочке... там используется переменная _hurd_brk, который изначально присваивается _end. Вот только что это за _end - непонятно. Концов не найти... Как его определить?
С кодом работать забота об адресе кучи - это загрузчика загрузчика бинарей.

Добавлено через 3 минуты
Цитата Сообщение от Jin X Посмотреть сообщение
Что значит "бери"? Переписать на асме? Я ж говорю: там используется extern-переменная _end, которая нигде не инициализируется. Как узнать текущую позицию brk (или как там правильно выразиться)?
Не знаю, надо инвестигировать код.
Цитата Сообщение от Jin X Посмотреть сообщение
Так, libc - это рантаймовская сишная библиотека и есть? Или нет?
Да.

Добавлено через 5 минут
Как я вижу по коду сискола, при невалидном адресе (например, 0 попробовать), он вернет текущее значение. Попробуй, поиграйся. И не путай сискол brk с функцией.

Добавлено через 7 минут
Цитата Сообщение от Jin X Посмотреть сообщение
Что значит "бери"? Переписать на асме?
"Бери" это значит, что немного раньше очень искал sbrk.o. Я тебе показал, где он лежит. Бери и делай, что ты там хотел с ним сделать ))))))) Вот это я имел в виду )
0
10.02.2017, 15:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.02.2017, 15:10
Помогаю со студенческими работами здесь

Системные вызовы
Мне нужно продемонстрировать работу системных вызовов windows на с++. Как это можно сделать?

Системные вызовы
Как осуществить вывод счета в секундах на консоль (своеобразный таймер). и как организовать отсчет...

Pintos системные вызовы
подскажите, пжлста, какие-нибудь линки или книги, где можно прочитать как работать в Пинтос, как...

Системные вызовы Ubuntu
Доброго времени суток. Надеюсь, не ошибся с разделом. Недавно записался на онлайн курс по Linux, но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru