LINUX.ORG.RU

загрузка файла по ФТП


0

0

Хочется отправить файл по ФТП в С`шной программе. Можно ли использовать команды system()?

Вручную через оболочку работает нормально, а как сделать, чтобы программа автоматом загружала.

Если возможно через файл .netrc, то куда его надо записать для root?

надо ли после команды,например system("ftp 1.1.1.1");, дожидаться ответа сервера, или system сам вернет результат

anonymous
Ответ на: комментарий от scotinomys

у меня прикол получился:

написал system(" ftp 1.1.1.1"); на сервер попал, а вот программа остановилась вывело ftp>

.. и все... а следующие системы(ch) и (put) уже не запускаются.... :(

anonymous
()
Ответ на: комментарий от scotinomys

> ...чтобы писать запущенному процессу в его stdin.

Могут быть грабли с буферизацией!

Многие Сишные функции включают блочную буферизацию, если stdin не /dev/tty

Die-Hard ★★★★★
()
Ответ на: комментарий от scotinomys

> но system("ftp 1.1.1.1"); system("put") это ж вообще анекдот :)

Хаха.

Действительно, ту все сложнее. Мой совет вряд ли в теме, если system("ftp 1.1.1.1"); system("put") ...

Die-Hard ★★★★★
()

Создаете файл с командами ftp.cmd (например):
ascii
get file1 file1
by

а потом

system("cat ftp.cmd | ftp -v usr:pwd@server")

PS: я, правда, обычно в shell-скриптах так делаю

ushakov
()
Ответ на: комментарий от Die-Hard

> Могут быть грабли с буферизацией!

The setbuf and setvbuf functions conform to ANSI X3.159-1989 (ANSI C) ;-)

saper ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.