Ejemplo n.º 1
0
bool startProcess(QString command)
{
    QStringList args;
    QString program  = expandCommand(command, &args);
    if (program.isEmpty())
        return false;

    return QProcess::startDetached(program, args);
}
Ejemplo n.º 2
0
bool startProcess(QString command)
{
    QStringList args;
    QString program  = expandCommand(command, &args);
    if (program.isEmpty())
        return false;
    if (QProcess::startDetached(program, args))
    {
        return true;
    } else
    {
        //fallback for executable script with no #!
        //trying as in system(2)
        args.prepend(program);
        args.prepend(QStringLiteral("-c"));
        return QProcess::startDetached(QStringLiteral("/bin/sh"), args);
    }

}
int MGetFile(struct COMMAND* cmd,struct FTS* fts)
{
	const int BUF_SIZE=1024;
	FILE* df=NULL;
	int code;
	puts("before expanding");
	expandCommand(cmd);
	puts ("after expanding");
	sendCommand (cmd,fts->sockfd);
	while(1)
	{
		code=receiveResponseCode(fts->sockfd);
		if(code == -1)
			break;
		if(fts->mode==FTS_MODE_ASCII)
			df=fopen(cmd->args[code],"r");
		else if(fts->mode == FTS_MODE_BINARY)
			df=fopen(cmd->args[code],"rb");
		if(df==NULL)
		{
			char buf[BUF_SIZE];
			snprintf(buf,BUF_SIZE,"%s : Coulnd't open file for writing\n",cmd->args[code]);
			sendResponseCode(fts->sockfd,-1);
			write(fts->sockfd,buf,strlen(buf));
			writeEOFToSocket(fts->sockfd);
			continue;
		}
		sendResponseCode(fts->sockfd,0);

		if(fts->mode==FTS_MODE_ASCII)
		{
			sendFileInAsciiMode(fts->sockfd,df);
		}
		else if(fts->mode==FTS_MODE_BINARY)
		{
			sendFileInBinaryMode(fts->sockfd,df);
		}
		fclose(df);
	}
	return (CHANDLER_SUCCESSFUL);
}