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

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

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

writetofile Здравствуйте! 0 \ n w% orl \ t! @ # y

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

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

Если пользователь не знает таких вещей, как использование кавычек ('') или escape-символов ('\'), как мне обрабатывать эти вещи, а не интерпретировать bash как команду?

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

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

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

Hello!0
 w%orl    !@#y

и нет

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

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

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