Конец вывода скрипта перед заголовками при попытке открыть файл на Apache [Cloud9IDE]

#c #apache #cgi

#c #apache #cgi

Вопрос:

Я пытаюсь отредактировать файл с помощью CGI C вне cgi-bin (~/workspace/files/html), и я попытался открыть с помощью этого кода (отредактированное имя рабочей области и пользователь):

 pfile = fopen("https://workspacename-user.c9users.io/files/html/output.html", "w");
  

Я получаю внутреннюю ошибку сервера, и когда я проверил журналы ошибок, она показала:

 [Wed Oct 05 18:40:12.350766 2016] [cgi:error] [pid 28008] [client 10.240.0.213:54468] End of script output before headers: test.cgi, referer: https://workspacename-user.c9users.io/files/html/main.html
  

Я попытался изменить местоположение файла, который я пытаюсь открыть, непосредственно в cgi-bin:

 pfile = fopen("output.html", "w");
  

и, похоже, это сработало. Есть ли способ решить эту проблему?

Комментарии:

1. Вы не можете fopen() указать URL на C (может быть, вы привыкли к PHP?). Вам нужно указать обычный путь к файловой системе.

2. » fopen принимает пути, которые действительны в файловой системе на момент выполнения». Пожалуйста, смотрите fopen

Ответ №1:

Как оказалось, fopen не может принимать URL-адреса. Я попытался отредактировать код, чтобы:

 pfile = fopen("../../../home/ubuntu/workspace/files/html/output.html", "w");
  

и это сработало.