Почему я не могу запустить эту программу C?

Пользователь 101 владелец файла? Если так, необходимо изменить файл на другой идентификатор пользователя, с chown (в дополнение к, или вместо, setacl звоните). Каждый файл принадлежит одному пользователю и одной группе; ACLs прибывают в дополнение к этому.

Обратите внимание, что я никогда не использовал ACLs на HP/UX, таким образом, я могу пропускать что-то.

Могло бы помочь, показали ли Вы вывод ls -ld /opt/path и getacl /opt/path перед выполнением этого find команда.

12
13.08.2012, 03:42
2 ответа

Вы не можете просто работать ./fork.c. Это не программа; это - источник для программы. Используя ./ предполагает, что файл является сценарием (который это не), и рассматривает его соответственно.

Однако, как отмечено в другом ответе, существуют компиляторы (как Крошечный компилятор C), который может выполнить код C, явно не компилируя его.

Так как это - программа C, необходимо скомпилировать программу. Попробовать cc -o fork fork.c затем ./fork; это работало здесь.

67
27.01.2020, 19:54
  • 1
    И если Ваш на Linux, это - вероятно, GCC, не CC. –  Linuxios 13.08.2012, 21:49
  • 2
    @Linuxios в большинстве систем Linux, cc символьная ссылка на gcc. –  Renan 13.08.2012, 21:50
  • 3
    Хороший для знания. Хотя это указывает на что-то еще в системах как Slaris, правильно? –  Linuxios 13.08.2012, 21:54
  • 4
    Просто установленный несколько флажков Solaris, и /usr/bin/cc ссылки на /opt/SUNWspro/bin/cc на одном и /opt/sunstudio12.1/bin/cc на другом. Независимо, это - все еще компилятор C. –  OrangeDog 14.08.2012, 12:38
  • 5
    И на поле HPUX это /opt/ansic/bin/cc. –  OrangeDog 14.08.2012, 12:40

Это не программа, это - исходный код для программы.

C является скомпилированным языком, означая, что он должен быть "скомпилирован" в машиночитаемые инструкции, прежде чем можно будет выполнить его. Поскольку Вы используете C, "компилятор C" (cc) может сделать это.

cc -o fork for.c   # compile the code
chmod +x fork      # ensure it it executable
./fork             # run the compiled program

Поскольку Вы идете дальше к более сложным программам, с помощью нескольких исходных файлов и внешних библиотек, Вы будете, вероятно, идти дальше к использованию "Набора Компилятора GNU" (gcc) и make описать, как превратить исходный код в рабочий исполняемый файл.

Этот вопрос имеет различную информацию о различии между сценариями (поскольку Вы пытаетесь рассматривать свой исходный код), и скомпилированные программы.

23
27.01.2020, 19:54
  • 1
    Если бы "компилятор" является частью названия инструмента, я назвал бы это довольно явным. –  OrangeDog 13.08.2012, 13:24
  • 2
    Просто примечание, которое инструменты я назвал, не является единственными доступными, но, вероятно, будет доступно по умолчанию в системе GNU/Linux и широко используется. –  OrangeDog 13.08.2012, 13:33
  • 3
    Относительно этого "должен" слово, tcc (Крошечный компилятор C), может выполнить код C, явно не компилируя его. pastebin.com/5FZiMpEn (Отредактированный комментарий путем передобавления его. Извините за питание порядка.) –  manatwork 13.08.2012, 13:36

Теги

Похожие вопросы