Выполнение сценария оболочки с помощью execl в программе C [закрыто]

-1
03.03.2018, 16:53
2 ответа

Прочтите документацию по execl (3)и execve (2 )(, которые вызываютсяexecl). Они могут потерпеть неудачу (, и это единственный способ вернуться; в случае успеха эти функции не возвращаются, так как они изменяют все виртуальное адресное пространство своего процесса ).

Итак, код (с использованием perror (3)):

 execl("/home/amir/Desktop/OSAssignment/script.sh","script.sh",NULL);
 perror("execl script.sh");

У вас должен быть исполняемый скрипт, и вы должны запустить его с шебангом . Его первая строка должна быть#!/bin/sh

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

0
28.01.2020, 05:07

Сценарий, который выполняется без явного интерпретатора, должен быть исполняемым и иметь правильную строку #!-.

Если строки#!-нет или она не является исполняемой, необходимо выполнить скрипт с помощью интерпретатора, как в

sh /path/to/script.sh

Вы также должны проверить код возврата из execl(), чтобы убедиться, что вызов не удался. Если это не удалось, вы можете использовать perror()для печати сообщения об ошибке. См. руководство для perrorвашей системы.

4
28.01.2020, 05:07

Теги

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