2015-08-21 2 views
1

Я экспериментировал с трубами в C. Я хочу подключить стандартный вывод file1:Как работать с трубами C на Mac?

int main() { 
    printf("6"); 
} 

... к стандартному вводу file2:

int main() { 
    int number; 
    scanf("%d", &number); 
    printf("The number is %d.", number); 
} 

Вывод должен быть: The number is 6. В Xcode добавляется file1 к исполняемому файлу (цели). Я открываю терминал приложение, измените каталог в папке Debug (который содержит исполняемый файл) и выдает следующую строку:

.\TestDrive | /usr/someone/somewhere/file2.c 

TestDrive это имя исполняемого файла (который содержит file1). Поскольку file2 не содержится в папке Debug, я должен указать полный путь к нему. Если вы хотите, вы можете скачать проект here.

В консоли я получаю Permission denied. Что я делаю не так?

+2

Вы не можете напрямую выполнить исходный код C. ('/ usr/someone/something/file2.c') Сначала вы должны скомпилировать его и запустить результирующий исполняемый файл. –

ответ

2

Если вы подключаетесь к /usr/someone/somewhere/file2.c, ожидается, что этот файл является исполняемым; .c файлов обычно нет, но файл, который был сгенерирован путем его компиляции, вероятно, есть.

+0

Большое вам спасибо! Я добавил новую цель в проект Xcode, и теперь мне хорошо идти! – Cesare

-1

Вы должны сделать свой TestDrive исполняемый файл из командной строки с помощью CHMOD.