void File_Save::okbutton_OnClicked(GtkWidget *w,GtkFileSelection *fs)
{
    const gchar *filename=gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (filechooserdialog1));
    inputCommand("save",(char *)filename);
    inputCommand(".","");
    gtk_widget_hide_all(filechooserdialog1);
}
Пример #2
0
int main(int argc, char *argv[]) {
    int keepRunning = 1;
    int command;

    while (keepRunning == 1) {
        showRegisters();
        command = inputCommand();
        switch (command) {
        case 0:
            keepRunning--;
            break;
        case 1:
            assignment();
            break;
        case 2:
            addRegisters();
            break;
        case 3:
            subtractRegisters();
            break;
        }
    }

    return 0;
}
Пример #3
0
static void start(std::vector<std::vector<std::string>> paths)
{
	int i;
	CDatagramSocket DatagramSockets[SOCKET_NUM];
	CServerSocket ServerSockets[SOCKET_NUM];
	bool bSuccess;
	hostent *localHost;

	g_PortmapProg.Set(PROG_MOUNT, MOUNT_PORT);  //map port for mount
	g_PortmapProg.Set(PROG_NFS, NFS_PORT);  //map port for nfs
	g_NFSProg.SetUserID(g_nUID, g_nGID);  //set uid and gid of files

	mountPaths(paths);

	g_RPCServer.Set(PROG_PORTMAP, &g_PortmapProg);  //program for portmap
	g_RPCServer.Set(PROG_NFS, &g_NFSProg);  //program for nfs
	g_RPCServer.Set(PROG_MOUNT, &g_MountProg);  //program for mount
	g_RPCServer.SetLogOn(g_bLogOn);

	for (i = 0; i < SOCKET_NUM; i++) {
		DatagramSockets[i].SetListener(&g_RPCServer);
		ServerSockets[i].SetListener(&g_RPCServer);
	}

	bSuccess = false;

	if (ServerSockets[0].Open(PORTMAP_PORT, 3) && DatagramSockets[0].Open(PORTMAP_PORT)) { //start portmap daemon
		printf("Portmap daemon started\n");

		if (ServerSockets[1].Open(NFS_PORT, 10) && DatagramSockets[1].Open(NFS_PORT)) { //start nfs daemon
			printf("NFS daemon started\n");

			if (ServerSockets[2].Open(MOUNT_PORT, 3) && DatagramSockets[2].Open(MOUNT_PORT)) { //start mount daemon
				printf("Mount daemon started\n");
				bSuccess = true;  //all daemon started
			} else {
				printf("Mount daemon starts failed.\n");
			}
		} else {
			printf("NFS daemon starts failed.\n");
		}
	} else {
		printf("Portmap daemon starts failed.\n");
	}


	if (bSuccess) {
		localHost = gethostbyname("");
		printf("Local IP = %s\n", inet_ntoa(*(struct in_addr *)*localHost->h_addr_list));  //local address
		inputCommand();  //wait for commands
	}

	for (i = 0; i < SOCKET_NUM; i++) {
		DatagramSockets[i].Close();
		ServerSockets[i].Close();
	}
}
Пример #4
0
/**
 * コンソール上で対局を行います。
 */
bool ConsoleManager::play() {

  // 定跡の読み込み
  if (!book_.readFile()) {
    Loggers::warning << "Could not read book.";
  }

  record_.init(Board::Handicap::Even);

  // 棋譜の読み込み
  if (!config_.inFileName.empty()) {
    CsaReader::read(config_.inFileName, record_);
  }

  auto searcherConfig = buildSearcherConfig(searcher_.getConfig(), config_);
  searcher_.setConfig(searcherConfig);

  printBoard(record_.getBoard());

  while (true) {

    if (!config_.outFileName.empty()) {
      CsaWriter::write(config_.outFileName, record_);
    }

    if (isAuto()) {

      // コンピュータによる着手
      search(true);

      // 盤面表示
      printBoard(record_.getBoard());

    } else {

      // ユーザからのコマンド入力
      CommandResult result = inputCommand();

      if (result == CommandResult::Changed) {
        // 盤面表示
        printBoard(record_.getBoard());

      } else if (result == CommandResult::Quit) {
        // quit
        break;

      }

    }
  }

  return true;
}
Пример #5
0
void shell_main(int argc, char *argv[])
{
    char *buf;
    char argumentList[100][256] = {0};
    int argcount;
    int type;
    int i;

    buf = (char *)Malloc(sizeof(char) * 256);
    while(1)
    {
        memset(buf, 0, 256);
        for(i = 0; i < 100; i++)
        {
            memset(argumentList[i], 0, 256);
        }
        //先打印shell提示符, 提示符根据路径名的改变而改变
        printShellPrompt();

        //等待输入要执行的命令
        //用input函数, input函数主要用于输入命令, 并且处理输入的命令
        inputCommand(buf);

 	    argcount = explainCommand(buf, argumentList);
           
        char *argument[argcount + 1];
        
        for(i = 0; i < argcount; i++)
        {
            argument[i] = (char *)argumentList[i];
        }
        argument[argcount] = NULL;

        //判度输入的是不是退出命令
        if(!strcmp(buf, "exit") || !strcmp(buf, "logout"))
        {
            break;
        }

        if(!strncmp(buf, "cd", 2))
        {
            //进行cd命令的一系列处理
            //argcount = explainCommand(buf, argumentList);
            cdCommand(argcount, argument);
        }
        else
        {
            type = judgeSymbolType(buf);
            if(type == HAVE_BACK)
            {
                backgroundSymbol(argument);
            }
            else if(type == HAVE_INPUT)
            {
                inputRedirectionSymbol(argument);
            }
            else if(type == HAVE_OUT)
            {
                outputRedirectionSymbol(argument);
            }
            else if(type == HAVE_PIPE)
            {
                pipeSymbol(argument, argcount);
            }
            else if(type == NO_SYMBOL)
            //如果没有以上这些符号,则当作普通命令执行
            {
                noSymbol(argument);
            }
        }
    }

    //如果输入了exit或logout, 则释放内存, 并结束进程
    if(buf)
    {
        free(buf);
        buf = NULL;
    }

    exit(0);
}