hi... got a problem how can i write something to stdin...
well about pipes... I really cant get the idea cause...
pipe(), fd[], read(), select(), unistd.h...
I don't think you want to be writing to stdin, thats for incoming data, reading from the keyboard etc, write to stdout and/or stderr. Simple reading from stdin use one of the scanf family, simple writing to stdout/stderr then one of the printf family. Otherwise it depends what you want to do as to how you do it.
However, the purpose of a pipe is to attach the stdout of one program to the stdin of another program.
1 2 3 4 5 6 7 8 9 10
// reflect.cpp
#include <iostream>
int main( int argc, char *argv[] )
{
std::string s;
getline( cin, s );
cout << argv[1] << ": " << s << endl;
return 0;
}
If you compile that
$ g++ reflect.cpp -o reflect
you can then use it to test the concept of a pipe:
$ reflect 1 | reflect 2hello2: 1: hello$
Let's examine what happened:
1. reflect 1 waited for you to type "hello" (since reflect 1's stdin is the console).
2. reflect 1 printed "1: hello" to its stdout.
3. reflect 1's stdout was piped into reflect 2's stdin
4. reflect 2 read "1: hello"
5. reflect 2 printed "2: 1: hello" to its stdout
6. since reflect 2's stdout was the console, you see "2: 1: hello".