cv::Mat filterVis() const { size_t maxFilters=0; size_t maxFilterSize=0; for (size_t i=0; i<stages.size(); i++) { maxFilters = std::max(stages[i].filters.size(), maxFilters); for (size_t j=0; j<stages[i].filters.size(); j++) { if ( stages[i].filters[j].cols > int(maxFilterSize)) maxFilterSize = size_t(stages[i].filters[j].cols); } } maxFilterSize += 2; cv::Mat fils(maxFilterSize*stages.size(), maxFilterSize*maxFilters, CV_8U, Scalar(0)); for (size_t i=0; i<stages.size(); i++) { cv::Mat res; for (size_t j=0; j<stages[i].filters.size(); j++) { Rect roi(1+j*maxFilterSize,1+i*maxFilterSize, stages[i].filters[j].cols,stages[i].filters[j].rows); stages[i].filters[j].convertTo( fils(roi), CV_8U,128,128); } } return fils; }
main() { int desc[2] ; char chaine[] = "Hey! Hello you :)" ; /* * Création du tube */ pipe(desc); /* * Création du fils */ switch (fork()){ case -1: printf ("FAILED FORK\n"); break; // child process case 0: fils(desc[0]) ; exit(0) ; } /* * Ecrire dans le tube */ printf ("Ecriture dans le tube\n"); write(desc[1], chaine, (sizeof(chaine)+1)); }
int recurse_pipe(t_data *d, t_more *link, int fd) { int father; int pfd[2]; if (pipe(pfd) == -1) { ft_putstr_fd("Pipe error (recurse_pipe)\n", 2); return (-1); } if ((father = fork()) < 0) { ft_putstr_fd("Fork() error (recurse_pipe)\n", 2); return (-1); } if (father == 0) fils(d, link, fd, pfd); else { close(pfd[0]); dup2(pfd[1], 1); close(pfd[1]); if (link->prev != NULL) prev_operator(d, link); } dup2(0, 1); return (1); }
int main(int argc, char ** argv) { if(argc!=2){ fprintf(stderr,"Nombre d'arguments incorrect\n"); fprintf(stderr,"Usage : %s <nom_fic>\n",argv[0]); exit(EXIT_FAILURE); } int fd; pid_t pid; int i; if((fd=open(argv[1], O_RDONLY))==-1){ erreur("open"); } for(i=0;i<N;i++){ if((pid=fork())==-1){ erreur("fork"); }else if (pid==0){ fils(fd); } } for(i=0;i<N;i++){ wait(NULL); } return EXIT_SUCCESS; }
Objet* PointDeVue::ConstruireVue(const Base::Association<Modele::Objet>& _modele) { Base::Traceur::MessageInterne("Entering Affichage::PointDeVue::ConstruireVue") ; Base::Composition<Objet> resultat ; if (this->EstVisible(_modele)) { /// On construit l'objet resultat = new Objet(_modele,*this) ; /// On mémorise l'observateur if (_modele == this->observateur) { this->vueObservateur = resultat ; } /// ses facettes for (Base::IterateurEnsembleAssociation<Modele::Facette> facette(_modele->AccesFacettes()) ; facette.Valide() ; ++facette) { Base::Traceur::MessageInterne("searching constructor for " + Base::Chaine(typeid(*this).name()) + " " + typeid(**facette).name()) ; ConstructeurVue constructeur = constructeurs[std::make_pair<Base::Chaine,Base::Chaine>(typeid(*this).name(),typeid(**facette).name())] ; if (! constructeur.empty()) { resultat->Ajouter(constructeur(*facette)) ; } else { Base::Traceur::MessageInterne("in Affichage::PointDeVue::ConstruireVue : constructeur vide pour " + Base::Chaine(typeid(*this).name()) + " " + typeid(**facette).name()) ; } } /// On construit ses composants visibles for (Base::IterateurEnsembleAssociation<Modele::Objet> fils(_modele->AccesContenu()) ; fils.Valide() ; ++fils) { if (this->EstVisible(*fils) == Base::VRAI) { resultat->Ajouter(this->ConstruireVue(*fils)) ; } } } Base::Traceur::MessageInterne("Leaving Affichage::PointDeVue::ConstruireVue") ; return resultat.Liberer() ; }
int main(int argc, char *argv[]){ key_t cle; int nens; cle = ftok("./Makefile",ID_PROJET); nens = ouvrirSem(cle); if( nens==-1){ perror("Pb lors ouverture sem fils"); exit(-1); } fils(nens); return 0; }
int main(int argc, char *argv[]) { key_t key; int nbProc, nbBoucle; int semid, i; unsigned short *init; pid_t pid; nbProc = atoi(argv[1]); nbBoucle = atoi(argv[2]); init = calloc(nbProc, sizeof(unsigned short)); init[0] = 1; if ((key = ftok("alternance.c", 10)) == -1) { perror("Erreur 1\n"); exit(1); } // Création ensemble de sémaphore if ((semid = semget(key, nbProc, IPC_CREAT | 0777)) == -1) { perror("Erreur 2\n"); exit(1); } // Initialisation de l'ensemble des sémaphores arg.array = init; if (semctl(semid, 0, SETALL, arg) == -1) { perror("Erreur 2\n"); exit(1); } for (i = 0 ; i<nbProc ; i++) { pid = fork(); switch(pid) { case -1: perror("Erreur 5\n"); exit(EXIT_FAILURE); case 0: fils(semid, i, i, nbProc, nbBoucle); exit(0); } } while (wait(NULL) != -1); // Destruction semaphore if (semctl(semid, 0, IPC_RMID,0)== -1) { perror("Erreur sup\n"); exit(1); } return EXIT_SUCCESS; }