Если Ваши потребности токенизации более сложны, проверяют мою Строку Какао с открытым исходным кодом, маркирующую/анализирующую инструментарий: ParseKit:
Для простого разделения строк с помощью символа разделителя (как ':'), ParseKit определенно был бы излишеством. Но снова, для сложных потребностей токенизации, ParseKit чрезвычайно мощен/гибок.
Также посмотрите документация Токенизации ParseKit .
Почему этот вывод мусора вместо корректного завершения моей программы?
Согласно CESA-2009-001 , «Системный вызов 1 - это выход на i386, но запись на x86_64» .
что мне нужно, чтобы он работал в Linux
Используйте порядковые номера системных вызовов из текущего unistd_64.h
Надеюсь, это поможет!
Системный вызов 1 - это выход на i386, но, как мне кажется, писать на x86-64.
РЕДАКТИРОВАТЬ: кажется, неточно: Согласно Интернету, который, похоже, не содержит слишком много информации о сборке Linux x86-64, это, по-видимому, ожидаемая установка регистра перед инструкцией системного вызова.
rax system call number
rbx arg0
rcx return address from syscall
rdx arg2
rsi arg3
rdi arg4
r8 arg5
r9 arg1 (expected by gcc in %rcx)
r10-r15 should be saved/restored by C code
rbp dito What is dito??