10-19-04 10:51 PM
olivier HARO <o.haro@en-compro.com> wrote:
: If thing you have not understood my problem
: I want to download a document based on my web server, that's why I use
: wget... (popen doesn't understand http urls, Am I wrong?)
: The problem is that when I use the system(wget
But popen is able to run wget -O - <url>
http://xxxxxxx.com), the C
: program doesnt't wait the end of the system() function so that it implies
wget is able to detach itself from shell and put in the background.
Typically, it requires -b option in the command line.
Since system function does use shell, you could start wget in the
background with it.
Moreover, since system use shell, placing ampersand "&" at the end of
command line would place program into background. So, if your URL
contain some ampersands, it should be properly quoted.
try following code:
char wget_cmd [1024];
sprintf(wget_cmd,"wget '%s'",url);
system(wget_cmd)
(of course in real code you better use snprintf)
: bugs.....
Since for more than thirty years people used this function and it worked
for them, it seems that there is some misunderstanding on your part.
: Is there any wait to download a http document in C language by an other wa
y?
: Is there a solution to my problem?
: thanks! ;)
There are numerous ways to do it. Note that wget itself as well as lynx
and many other web access tools are written in C. (Mozilla and Opera are
written on C++ although)
There are numerous C libraries which handle client part of http
protocol.
But for simple case it is enough just to open socket to port 80 of your
web server, send there simple HTTP protocol command
"GET /mydocument.doc HTTP/1.1\nHost: www.myserver.com\n\n"
if you are going for http://www.myserver.com/mydocument.doc
and read everything which comes from server.
--
[ Post a follow-up to this message ]
|