Как интерпретировать специальные символы в аргументе командной строки в C?

Первая проблема:

Предположим, мы пишем простую программу, которая принимает аргументы командной строки и печатает в файл. Если пользователь вводит

writetofile Привет! 0 w% orl \ t! @ # y

Баш отвечает с

! 0: событие не найдено.

Без знания пользователем таких вещей, как использование кавычек ('') или экранирующие символы ('\'Как мне справиться с этим, а не с bash, понимая его как команду?

Вторая проблема:

Как только я получу эти аргументы, как мне интерпретировать их как специальные символы, а не последовательности символов. (т. е. \ t это вкладка, а не '\' 't')

То есть как убедиться, что программа записывает это в файл:

Hello!0
 w%orl    !@#y

и не

Hello!0\n w%orl\t!@#y

Ответы на вопрос(3)

Ваш ответ на вопрос