executing code under a child process and another tcp question
tyler
compgeek13 at gmail.com
Wed Mar 29 17:52:02 EST 2006
will check those.
Thanks,
Tyler Littlefield.
Check out our website:
http://tysplace.the-leetest.net
check out my blog:
livejournal.com/~tylerrl
[my programs don't have bugs, just randomly added features]
[failure is not an option, it comes bundled with windows!]
----- Original Message -----
From: "Garry Turkington" <garry.turkington at acm.org>
To: "Speakup is a screen review system for Linux." <speakup at braille.uwo.ca>
Sent: Wednesday, March 29, 2006 2:24 PM
Subject: Re: executing code under a child process and another tcp question
>
> I haven't written multi-threaded code in C for years but here's a few
> vague pointers from memory.
>
> Calling fork() returns an integer, the status of that lets you know
> whether or not you're in the parent or child. A common way of working
> therefore is something like:
>
> int id = fork() ;
>
> if (id == something)
> {
> /* in child */
>
> execl( <path-to-executable>...) ;
> /* error check here */
> }
> else
> /* in parent */
>
> So the parent carries on with the main code, the child executes another
> executable, script or whatever and that is the child process code.
> Obviously the child code can just be embedded in the same source file but
> unless its really trivial it becomes unwieldy.
>
> Pipes are pretty straightforward. Create a pipe, use dup2 to hook up the
> parent stdout to the child stdin and vice versa and you have a very crude
> but workable way of passing info back and forth.
>
> So, read up on fork(), execlp(), pipe() and dup2() and you should work it
> all out.
>
> One point though - C is a really unfriendly language to learn things like
> multithreaded or socket programming. If you want to learn the concepts
> (and with multi-threaded code it will take a very long time) as opposed to
> an immediate need to actually use it in C then I'd suggest doing your
> learning in another language. The difficulties of the material are great
> enough without getting caught around the axle of the particular language
> idiosyncracies.
>
> Regards,
> Garry
>
> --
> Garry Turkington
> garry.turkington at gmail.com
>
> On Mon, 27 Mar 2006, tyler wrote:
>
>> Hello everyone,,
>> Though these questions may bwe boardering on the relm of programming, I
>> wasn't really sure where else to ask them, I am aware of the
>> blindprogramming list, but don't like to sign up to lists with high
>> traffic
>> like that one, because sometimes its hard for me to check my email, and
>> when
>> I get back (just from being on the blindgamers list, and the three lists
>> owned by the same organization as the programming at blindprogramming) after
>> not reading email for like 4 days, I had over 700 emails.
>> Anyway, I have a couple questions,
>> I read up on fork, and found that it isn't just something used to eat
>> your
>> food with, but you can spawn other processes with it.
>> But, my main idea was a pipe, I wanted to spawn a child process, and
>> create
>> a pipe to it, so I read up on pipes to.
>> The only thing I have been able to find is how to get my process to
>> execute
>> shell commands,
>> Do I have to stick to shell commands, or can I actually switch execution
>> between child and parent.
>> Also, how do I get the pid of the parent process?
>> Last, I want to start playing with TCP.
>> If I send in the raw mode, can I just send a struct as a packet?
>> If so, that will only take me reading up on how packetts are formed (I
>> know
>> the basics) but not the exact ways, and then I can just create a struct
>> to
>> represent a packet, and send it to where ever I wish. I also as a little
>> example wish to create a ping program, and a port scanner, I can do the
>> port
>> scanner fairly easy I think, with minimal research, but what does the
>> ping
>> program do? I haven't been able to figure that one out, and I have used
>> numerous packett sniffers.
>> Things just look garbled.
>> Thanks for your help,
>>
>>
>> Tyler Littlefield.
>> Check out our website:
>> http://tysplace.the-leetest.net
>> check out my blog:
>> livejournal.com/~tylerrl
>> [my programs don't have bugs, just randomly added features]
>> [failure is not an option, it comes bundled with windows!]
>>
>>
>> _______________________________________________
>> Speakup mailing list
>> Speakup at braille.uwo.ca
>> http://speech.braille.uwo.ca/mailman/listinfo/speakup
>>
>
> _______________________________________________
> Speakup mailing list
> Speakup at braille.uwo.ca
> http://speech.braille.uwo.ca/mailman/listinfo/speakup
More information about the Speakup
mailing list