Win32API質問箱 Build47
■ このスレッドは過去ログ倉庫に格納されています
0290デフォルトの名無しさん
2006/11/23(木) 00:02:42自プロセスでputsとかで出力したものをコンソールに出力せずあとでReadFileでまとめて取得したくて下記のようなコードを書いたのですがうまくいきません
int main() {
SECURITY_ATTRIBUTES sa;
HANDLE hRead, hWrite;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
if(!CreatePipe(&hRead, &hWrite, &sa, 0)) {
puts("error CreatePipe");
return 1;
}
if(!SetStdHandle(STD_OUTPUT_HANDLE, hWrite)) {
puts("error SetStdHandle");
return 1;
}
const char msg[] = "Hello from new stdout";
puts(msg); // 新しく設定されたstdoutに出力
fflush(stdout);
FlushFileBuffers(hRead);
FlushFileBuffers(hWrite);
char buf[1024] = {0}; DWORD read = 0;
ReadFile(hRead, buf, sizeof(buf)-1, &read, NULL);
if(strcmp(buf, msg) != 0) {
puts("failed");
return 1;
}
return 0;
}
■ このスレッドは過去ログ倉庫に格納されています