Я в основном хочу, чтобы всякий раз, когда я что-то печатал, моя программа интерпретировала, как я посылаю ему аргументы.
Это не работает таким образом, извините. Аргументы программы передаются программе только при ее запуске, как часть ее запуска.
После этого ваша программа может читать дополнительные данные из стандартного ввода или других источников, но такие данные не принимается в виде аргументов программы. Если вы используете sh, вы можете обрабатывать их так же, как аргументы своей программы, но это было бы необычно. Обычно программы используют аргументы и ввод / вывод для разных целей.
Я знаю, что мне следует использовать pthread и прочее
Понятия не имею, что дало вам идею, что pthreads должен сыграть здесь свою роль, и я призываю вас выработать хорошее рабочее понимание того, как работают однопоточный код и программы, прежде чем вы углубитесь в pthreads или любой другой многопоточный API.