私は、Linuxの下で、次のコマンドをターミナルでCでのpopen()の使用がうまくいかない?
xwd -root | xwdtopnm | pnmtojpeg > screen.jpg
を実行することができますし、それは私の現在の画面のスクリーンショットを生成します。
私は、コードで次の操作を実行しよう:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fpipe;
char *command="xwd -root | xwdtopnm | pnmtojpeg";
char line[256];
if (!(fpipe = (FILE*)popen(command,"r")))
{ // If fpipe is NULL
perror("Problems with pipe");
exit(1);
}
while (fgets(line, sizeof line, fpipe))
{
//printf("%s", line);
puts(line);
}
pclose(fpipe);
}
その後、私はプログラム./popen > screen.jpg
が、結果のファイルscreen.jpgがunrecongizableでコンパイルして実行します。プログラムを正しくパイプ処理できるようにするには、どうしたらいいですか?
を私はbashスクリプトを使用することはできません、これは単なるテストです。 X11でスクリーンショットを撮るためのプログラム的な方法が必要です。これはすべてのX11ソースコードを調べなければならない最高のものです。 –