kpipeprocess.cpp00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "kpipeprocess.h"
00021
00022 KPipeProcess::KPipeProcess(const QString& cmd, int mode)
00023 : QFile()
00024 {
00025 m_pipe = NULL;
00026 if (!cmd.isEmpty())
00027 open(cmd,mode);
00028 }
00029
00030 KPipeProcess::~KPipeProcess()
00031 {
00032 close();
00033 }
00034
00035 bool KPipeProcess::open(const QString& cmd, int mode)
00036 {
00037
00038 close();
00039
00040 if (mode != IO_ReadOnly && mode != IO_WriteOnly)
00041 return false;
00042
00043
00044 m_pipe = popen(cmd.latin1(),(mode == IO_WriteOnly ? "w" : "r"));
00045 if (m_pipe)
00046 if (!QFile::open(mode,m_pipe))
00047 close();
00048 return (m_pipe != NULL);
00049 }
00050
00051 void KPipeProcess::close()
00052 {
00053 if (m_pipe != NULL)
00054 {
00055 QFile::close();
00056
00057 pclose( m_pipe );
00058 m_pipe = NULL;
00059 }
00060 }
|