Files
igl/examples/stdin_to_temp/example.cpp
T

51 lines
1.2 KiB
C++

/**
* Simple example showing how to use stdin_to_temp
*
* Compile with:
* g++ -O3 -o stdin_to_temp_demo stdin_to_temp_demo.cpp
*
* Run examples:
* cat file1 | ./stdin_to_temp_demo
* cat file1 | ./stdin_to_temp_demo | cat >file2
* cat file1 | ./stdin_to_temp_demo dummy1 dummy2 | cat >file2
* ./stdin_to_temp_demo <file1 | cat >file2
* ./stdin_to_temp_demo <file1 >file2
*
*/
#include <igl/stdin_to_temp.h>
using namespace igl;
#include <cstdio>
using namespace std;
int main(int argc,char * argv[])
{
// Process arguements and print to stderr
for(int i = 1;i<argc;i++)
{
fprintf(stderr,"argv[%d] = %s\n",i,argv[i]);
}
FILE * temp_file;
bool success = stdin_to_temp(&temp_file);
if(!success)
{
fprintf(stderr,"Fatal Error: could not convert stdin to temp file\n");
// try to close temp file
fclose(temp_file);
return 1;
}
// Do something interesting with the temporary file.
// Read the file and write it to stdout
char c;
// Read file one character at a time and write to stdout
while(fread(&c,sizeof(char),1,temp_file)==1)
{
fwrite(&c,sizeof(char),1,stdout);
}
// close file
fclose(temp_file);
}