linux quest wrote:
[ ... ]
Notice: steep learning curve ahead. I suggest you clarify
what you want to do
and what problems you are trying to solve; learning how to
write simple code
in C comes before learning how to write network code in C
and learning how to
work in Unix is a separate issue entirely.
> So, my question is ...
>
> 1. How can I write a very simple C network program
... to lets say I wanted to ping google.com ???
A minimal program would involve the system() call to run the
existing ping
program directly:
> % cat ping_google.c
> #include <stdlib.h>
>
> int main(int argc, char *argv[])
> {
> int ping_failed;
>
> ping_failed = system("/sbin/ping -oq
google.com > /dev/null");
> if (ping_failed) {
> puts("nPinging google.com
failed!n");
> } else {
> puts("nPinging google.com
succeeded.n");
> }
> }
> % cc -o pg ping_google.c
> % ./pg
>
> Pinging google.com succeeded.
...for a more complete implementation, something which
allocates its own
sockets and deals with the network itself, look at
/usr/src/sbin/ping/ping.c;
it's about 1700 lines long. However, it would be possible
to write something
much smaller using libnet, for example.
> 2. Which directory / location in UNIX should I go
to?
Most people create a location under their home directory
called "Projects" or
"Workareas", or something similar, and create and
work on their stuff in a
subdirectory under there.
> 3. How do I compile and execute the simple C network
program - lets say doing a ping on google.com???
For trivial cases, using "cc" directly. For more
complex programs, most
people use Makefiles.
--
-Chuck
_______________________________________________
freebsd-questions freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-que
stions
To unsubscribe, send any mail to
"freebsd-questions-unsubscribe freebsd.org"
|