示例#1
0
文件: shell.c 项目: oscar932/shell
int redireccion(char *cmd){

  if(*cmd =='\0')
    return 1;

  char *s;

  s = strstr(cmd, "&&");  

  if(s == NULL){
    if (*cmd =='\0')
      return 1;
    else {
      return ejecutar(cmd); 
    }
  }
  else {
    char *buffer=malloc(sizeof(char) * 1024); 
    strncpy ( buffer, cmd, s - cmd);
    if(ejecutar(buffer) == 1){
      char *cmd2=s+2;
      return redireccion (cmd2);
    }
    else{
      printf("Error process failed \n");
      return 1;
    }
  }
}
示例#2
0
void tipo_Cod_Operacion (int32_t id, header_t* header){

	sock_t* socketPlanificador=getSocketPlanificador(id);
	switch (get_operation_code(header)) {
	case ENVIO_QUANTUM:{
		int32_t recibido = _receive_bytes(socketPlanificador, &quantum, sizeof(int32_t));
		log_debug(loggerDebug,"CPU:%d recibio de Planificador codOperacion %d QUANTUM: %d",id, get_operation_code(header), quantum);
		if (recibido == ERROR_OPERATION || recibido == SOCKET_CLOSED)return;
		break;
	}
	case ENVIO_PCB:{
		log_debug(loggerDebug,"CPU: %d recibio de Planificador codOperacion %d PCB",id, get_operation_code(header));
		char* pedido_serializado = malloc(get_message_size(header));
		int32_t recibido = _receive_bytes(socketPlanificador, pedido_serializado, get_message_size(header));
		if(recibido == ERROR_OPERATION || recibido == SOCKET_CLOSED) {
			log_debug(loggerDebug, "Error al recibir el PCB del planificador");
			return;
		}
		PCB* pcb = deserializarPCB (pedido_serializado);
		free(pedido_serializado);
		int32_t inicial;int32_t final;
		inicial=obtengoSegundos();	tiempoInicial[id]=inicial;estado[id]=1;
		ejecutar(id, pcb);
		final=obtengoSegundos(); tiempoFinal[id]=final;
		if(final>inicial){
			tiempoAcumulado[id]+=(final-inicial);
		}else if(final<inicial){
			tiempoAcumulado[id]+=final;
		}
		estado[id]=0;
		break;
		}
示例#3
0
int main(int argc,char *argv[]) {

	t_configuracion_cpu* configCPU = malloc(sizeof(t_configuracion_cpu));

	logger = log_create("cpu.log", "CPU",true, LOG_LEVEL_INFO);
	crearLog();

	//valida los parametros de entrada del main
	if (argc != 2) {
	    log_error_y_cerrar_logger(logger, "Uso: cpu config_path (faltan parametros de entrada)\n");
		return EXIT_FAILURE;
	}

    log_info(logger, "Inciando proceso CPU..");
	levantarDatosDeConfiguracion(configCPU, argv[1]);

	//Conexión al nucleo
	conectarAlNucleo(configCPU);

	//Conexión al umc
	conectarAUMC(configCPU);

	signal(SIGUSR1, handler_seniales);

	int header;

	printf("Me quedo escuchando mensajes del nucleo (socket:%d)\n", socket_nucleo);

	while(1){

		if( recv(socket_nucleo, &header, sizeof(int), 0) <= 0)
		{
			perror("Desconexion del nucleo\n");
			close(socket_nucleo);
			return 0;
		}

		switch (header) {
			case EJECUTA:
				ejecutar();
				break;

			case CAMBIO_QUANTUM_SLEEP:
				recv(socket_nucleo,&quantum_sleep,sizeof(int),0);
				break;

			default:
				printf("obtuve otro id %d\n", header);
				sleep(3);
				break;
		}
	}

	finalizarCpu();
	log_destroy(logger);


	return EXIT_SUCCESS;
}
示例#4
0
void frmInstalarJuego::on_btnOk_clicked()
{
	QDir dir;
	QString install_info = tr("El ejecutable suele ser: INSTALL, si no esta seguro teclee DIR y pulsa INTRO");
	if( QFile::exists(grlCfg.DirDOSBox) && dir.exists(fGrl->getDirRelative(ui->txtDestinoPath->text(), "DosGames")) )
	{
		QStringList lista_multiple_iso;
		QString tipo_origen = ui->cbxMontaje_type_drive->itemData( ui->cbxMontaje_type_drive->currentIndex() ).toString();
		QFile file_out(grlDir.Temp +"dosbox.conf");
		if ( file_out.open(QIODevice::WriteOnly | QIODevice::Text) )
		{
			QString dir_montaje = fGrl->getDirRelative(ui->txtMontaje_path->text(), "DosGames");

			QTextStream out(&file_out);
			out.setCodec("UTF-8");
			out << "[autoexec]" << endl;
			out << "@echo off" << endl;

			if( tipo_origen == "drive" )
				out << "mount D \"" << dir_montaje << "\"" << endl;
			else if( tipo_origen == "cdrom" )
				out << "mount D \"" << dir_montaje << "\" -t cdrom" << endl;
			else if( tipo_origen == "floppy" )
				out << "mount A \"" << dir_montaje << "\" -t floppy" << endl;
			else if( tipo_origen == "IMG_floppy" )
				out << "imgmount A \"" << dir_montaje << "\" -t floppy" << endl;
			else if( tipo_origen == "IMG_iso" )
				out << "imgmount D \"" << dir_montaje << "\" -t iso" << endl;
			else if( tipo_origen == "IMG_multi_iso" )
			{
				lista_multiple_iso.clear();
				for( int i = 0; i < ui->lw_MultiIso->count(); ++i )
				{
					if(i == 0)
						lista_multiple_iso << "\""+ fGrl->getShortPathName( fGrl->getDirRelative(ui->lw_MultiIso->item(i)->text()) ) +"\"";
					else
						lista_multiple_iso << "\""+ fGrl->getDirRelative(ui->lw_MultiIso->item(i)->text()) +"\"";
				}
				out << "imgmount D " << lista_multiple_iso.join(" ") << " -t iso" << endl;
			}
			else if( tipo_origen == "IMG_hdd" )
				out << "imgmount D \"" << dir_montaje << "\" -t hdd" << endl;

			out << "mount C \"" << fGrl->getDirRelative(ui->txtDestinoPath->text(), "DosGames") << "\"" << endl;
			out << "echo " << install_info << endl;

			if(tipo_origen == "floppy" || tipo_origen == "IMG_floppy")
				out << "A:" << endl;
			else
				out << "D:" << endl;

			out.flush();
			file_out.close();
		}
		ejecutar( grlCfg.DirDOSBox, "-conf|"+grlDir.Temp +"dosbox.conf", grlDir.Temp);
	} else
		QMessageBox::information( this, "",tr("Puede que no este disponible el ejecutable del emulador.\nO el directorio de destino."));

}
示例#5
0
int main()
{
    int opcion,*op;
    op=&opcion;
//    FILE *pf;
    t_empleado info;
    t_cola cola;
    t_cola cola2;
    crearCola(&cola);
    crearCola(&cola2);
    do
    {
        menu(op);
        ejecutar(opcion,&cola,&cola2,&info);
    }while(opcion!=9);
    return 0;
}
示例#6
0
int main(int argc, char *argv[]) 
{
	int cantidadParametros=2; // esto no va a variar?
	char host[255]="hornero.fi.uncoma.edu.ar";

        char *probl = argv[1];
	char *tokenTorneo = argv[2];
        char *leng = argv[3];
        char *prog = argv[4];
        int sist;

     	char respuesta[1000];
     	char respuesta2[1000];
        char comando[1024];

        if(argc != 5) 
                fatal("Mal numero de argumentos: hornero <numProbl> <token> <lenguaje> <prog.exe>");
        if((sist = sistemaValido(leng)) < 0) 
                fatal("Lenguaje no soportado");

        // enviarSolicitud -> escribe en buffer 
	enviarSolicitud(host,tokenTorneo,probl);

        // parser analiza buffer y carga global parametros[]
	parser(cantidadParametros);

        // arma comando a lanzar en buffer comando
        crearComando(comando, sist, prog, cantidadParametros);

        fprintf(stderr,"\nCOMANDO >%s<\n", comando);

        // lanzar el comando
        ejecutar(comando, respuesta);
        sprintf(respuesta2, "%d", atoi(respuesta));

        fprintf(stderr, "RESPUESTA: >%s<\n", respuesta2);
        enviarRespuesta(host,respuesta2);

        fprintf(stderr, "BUFFER: >%s<\n", buffer);
	return 0;
}
示例#7
0
文件: ush.c 项目: gerard/ushell
int main(int argc, char * argv[]) {
	char *linia;
	
	if(argc==3 && argv[1][0]=='-' && argv[1][1]=='c') {
		/*printf("Arguments\n");*/
		if(strlen(argv[2])>=MAXLINE) {
			printf("Excesivo número de carácteres\n");
			exit(1);
		}
		
		/* Ejecución de la orden */
		argv[2][strlen(argv[2])]='\n';
		argv[2][strlen(argv[2])+1]='\0';
		analizar(argv[2]);

		pipeline(num_ordenes(), fich_entrada(), fich_salida(), es_append(), es_background());
		ejecutar(num_ordenes(), num_argumentos(), get_ordenes(), get_argumentos(), es_background());
		
		exit(0);
	}

	if(argc!=1) {
		printf("Parámetros erróneos\nUSO: -c \"comando\"\n", argv[1]);
		exit(1);
	}

	getcwd(current, MAXLINE);
	
    fprintf(stdout, LOGO);
    while(1) {
		
		linia=getline();
		analizar(linia);
		
		/*printf("Analizadas %d ordenes\n", num_ordenes());*/

		struct sigaction senyal;
		char **ordres;
		
		sigemptyset(&senyal.sa_mask);
		senyal.sa_flags=0;
    	if(sigaction(SIGINT, NULL, &senyal)!=-1) {
			senyal.sa_handler=SIG_IGN;
			sigaction(SIGINT, &senyal, NULL);
			sigaction(SIGQUIT, &senyal, NULL);
			sigaction(SIGTTIN, &senyal, NULL);
			sigaction(SIGTTOU, &senyal, NULL);
		}
		
		ordres=get_ordenes();

		if(num_ordenes()==0) continue;

		if(!strcmp(ordres[0],"exit")) exit(0);
		
		if(!strcmp(ordres[0],"cd")) cdexec(get_argumentos(), num_argumentos(), current);
		else {
			pipeline(num_ordenes(), fich_entrada(), fich_salida(), es_append(), es_background());
			ejecutar(num_ordenes(), num_argumentos(), get_ordenes(), get_argumentos(), es_background());
			/*visualizar();*/
			/*printf("Command: %s", buffer); */
		}
	}
	return 0;
} /* main */
示例#8
0
文件: mmult.c 项目: Aranlu27/6620tps
int main(void)
{
  ejecutar();
  return 0;
}
示例#9
0
void ZGui::CreateWindow ( QWidget* parent )
{
  setMainWidgetTitle ( "zCleaner" );
  ZWidget *myWidget = new ZWidget ( this, NULL, 0, ( ZSkinService::WidgetClsID ) 40 );
  QFont f ( qApp->font() );
  f.setPointSize ( 10 );
  myWidget->setFont ( f );

  QVBoxLayout *myVBoxLayout = new QVBoxLayout ( myWidget, 0 );
  //*****************************
  //*** add elements here
  QLabel *myLabel = new QLabel ( QString ( "<qt><font size=\"+1\">zCleaner</font><br>"
                                 "<font size=\"-1\">Simple antivirus for Z6</font></qt>" ), myWidget );
  myVBoxLayout->addWidget ( myLabel, 0 );
  myLabel->setIndent ( 5 );
  myLabel->setAutoResize ( true );


  scrollPanel = new ZScrollPanel ( myWidget, NULL, 0, ( ZSkinService::WidgetClsID ) 0 );
  scrollPanel->resize ( 240, 320 );
   //-----------------------------------------------------------------------------------
  modo=new ZComboBox(this,"ZComboBox",true);//declaro los combobox
  lugar=new ZComboBox(this,"ZComboBox",true);
  modo->insertItem("Clean", 0 );
  modo->insertItem("AV", 1 );	
  //modo->insertItem("Picture/Video", 2 );  
  scrollPanel->addChild(modo , 100 , 5);//agrego el combobox de las apps al escritorio

  lab1 = new ZLabel("Mode" , this, "ZLabel", 0, (ZSkinService::WidgetClsID)4);
  lab1->setPreferredWidth(240);
  lab1->setAutoResize(true );
  
  scrollPanel->addChild(lab1 , 10 , 8);//agrego el label al menu
  
  lugar->insertItem("SD",0);
  lugar->insertItem("Phone",1);
  lugar->insertItem("SD/Phone",2);

  scrollPanel->addChild(lugar , 100 , 55);//agrego el propiestario al escritorio
  lab2  = new ZLabel("Location" , this, "ZLabel", 0, (ZSkinService::WidgetClsID)4);
  lab2->setPreferredWidth(240);
  lab2->setAutoResize(true );
  
  scrollPanel->addChild(lab2 , 10 , 58);//agrego el label al menu
  myVBoxLayout->addWidget ( scrollPanel, 0 );


  //*****************************
  setContentWidget ( myWidget );
  //************** softkeys and menus **************************
  ZSoftKey *softKey = new ZSoftKey ( NULL , this , this );
  QPixmap* pm  = new QPixmap();
  
  QRect rect, rect2, rect3, rect4;

  ZOptionsMenu* agre = new ZOptionsMenu ( rect3, softKey, NULL, 0, ( ZSkinService::WidgetClsID ) 2 );
  //pm->load(getProgramDir() + "img/about.png");
  agre->insertItem ( QString ( " ASK" ), NULL, NULL, true, 0, 0 );
  agre->insertItem ( QString ( " DELETE" ), NULL, NULL, true, 1, 1 );
  agre->connectItem ( 0, this, SLOT ( agregarTipoASK() ) );
  agre->connectItem ( 1, this, SLOT ( agregarTipoDELETE() ) );

  ZOptionsMenu* borr = new ZOptionsMenu ( rect4, softKey, NULL, 0, ( ZSkinService::WidgetClsID ) 2 );
  borr->insertItem ( QString ( " ASK" ), NULL, NULL, true, 0, 0 );
  borr->insertItem ( QString ( " DELETE" ), NULL, NULL, true, 1, 1 );
  borr->connectItem ( 0, this, SLOT ( eliminarTipoASK() ) );

  ZOptionsMenu* data = new ZOptionsMenu ( rect2, softKey, NULL, 0, ( ZSkinService::WidgetClsID ) 2 );
  pm->load(getProgramDir() + "img/add.png");
  data->insertItem ( QString ( " Add type" ), agre, pm, true, 0, 0 );
  pm->load(getProgramDir() + "img/remove.png");
  data->insertItem ( QString ( " Remove type" ), borr, pm, true, 1, 1 );

  
  ZOptionsMenu* menu = new ZOptionsMenu ( rect, softKey, NULL, 0, ( ZSkinService::WidgetClsID ) 2 );
  pm->load(getProgramDir() + "img/about.png");
  menu->insertItem ( QString ( " About" ), NULL, pm, true, 0, 0 );
  menu->insertSeparator(1, 1); 
  pm->load(getProgramDir() + "img/white.png");
  menu->insertItem ( QString ( " Clean" ), NULL, pm, true, 2, 2 );
  pm->load(getProgramDir() + "img/properties.png");
  menu->insertItem ( QString ( " Database" ), data, pm, true, 3, 3 );
  pm->load(getProgramDir() + "img/edit.png");
  menu->insertItem ( QString ( " Save delete files list" ), NULL, pm, true, 4, 4 );
  menu->insertSeparator(5, 5); 
  pm->load(getProgramDir() + "img/exit.png");
  menu->insertItem ( QString ( " Exit" ), NULL, pm, true, 6, 6 );

  menu->connectItem ( 6, qApp, SLOT ( quit() ) );
  menu->connectItem ( 2, this, SLOT ( ejecutar() ) );
  menu->connectItem ( 0, this, SLOT ( about() ) );
  menu->connectItem ( 4, this, SLOT ( verEliminados() ) );

  softKey->setOptMenu ( ZSoftKey::LEFT, menu );
  softKey->setText ( ZSoftKey::LEFT, "Menu", ( ZSoftKey::TEXT_PRIORITY ) 0 );
  softKey->setText ( ZSoftKey::RIGHT, "Exit", ( ZSoftKey::TEXT_PRIORITY ) 0 );
  softKey->setClickedSlot ( ZSoftKey::RIGHT, qApp, SLOT ( quit() ) ); 
  setSoftKey ( softKey );


}