Voici un truc que j'avais écris pour controller l'entrée standard d'un programme (nommé apt, mais rien avoir avec deb) et récupérer ce qui en sortait.
----
int childPid;
int pipefdin[2],pipefdout[2];
// Close unusable channels
close(pipefdin[0]);
close(pipefdout[1]);
// Return the right values to control the apt
*aptin_k = pipefdin[1];
*aptout_k = pipefdout[0];
}
----
aptin_k doit être le fd pour écrire sur la stdin du prog que tu veux controller, et aptou_k doit être là où tu lis pour récupérer sa stdout...
En espérant te filer un coup de main...
Et on dit que debian c'est compliqué, pas à jour etc.... moi je toruve ca plus facile que ouin ouin...
$ apt-cache search export current x11 display
rfb - VNC Server for X11 - exports current display
J'avoue que je n'ai pas testé, mais ca devrais faire ce que cà dit non?
-----
Like the xvncserver package, x0rfbserver exports an X display using the RFB protocol.
Unlike xvncserver which creates a virtual X11 display to export, X0rfbserver actually exports the display it is run in... just like the windows VNC server.
Also included are rfb utilities to capture and replay RFB data streams, and a vnc viewer.
Dans la famille capucepalibre je nome aussi le logiciel sur lequel on me fait bosser : Objecteering (http://www.objecteering.com/products.php(...)). Je doit admettre à contre coeur qu'il joue dans une catégorie placée bien au-dessus de Poseidon (et donc argoUML). Je n'ai par contre vu Together que de loin.
Les plus :
- vérifications syntaxiques du langage UML
- créations de métamodèles ou profiles (manière d'organiser son étude, manière de "bien parler" en rappelant que UML n'est qu'un langage)
- personnalisation à l'infini de la génération de documentation/code (bien que des modules prédéfinis existent déjà)
- liens entre les différents niveau de modélisation
C'est peut-être confus ce que je dis, mais cà prends son sens dans le "model driven engineering" (http://www.objecteering.com/pdf/whitepapers/us/mda.pdf(...)) (PDF) qui en gros essaye de spécifier une méthode pour développer juste avec des modèles de plus en plus précis et toujours avoir du code synchronisé avec les modèles. Attention cependant à prendre avec des pincettes les passages pubs pour le logiciel.
Dernière chose, générer un diagramme à partir du code n'a aucun intéret (on perds des infos qui y seraient si on étais partis du modèle), tout comme utiliser UML pour spécifier un petit système ou un algorithme.
# Re: Chmod: le blues du dimanche matin ...
Posté par niol (site web personnel) . En réponse au journal Chmod: le blues du dimanche matin .... Évalué à 2.
[^] # Re: C
Posté par niol (site web personnel) . En réponse au journal C. Évalué à 1.
----
int childPid;
int pipefdin[2],pipefdout[2];
/* Pipes init */
if( pipe(pipefdin) == -1 || pipe(pipefdout) == -1 ){
perror("Creating apt communication pipes");
exit(1);
}
childPid = fork();
if( !childPid ){
// son, so we launch apt and we connect
// its standards channels to pipes
// close unused channels
close(pipefdin[1]);
close(pipefdout[0]);
// Duplicate stdin to our pipe
close(STDIN);
if( dup(pipefdin[0]) == -1 ){
perror("duplicating apt stdin");
exit(1);
}
// Duplicate stdout to our pipe
close(STDOUT);
if( dup(pipefdout[1]) == -1 ){
perror("duplicating apt stdout");
exit(1);
}
// Duplicate stderr to the same pipe as stdout
close(STDERR);
if( dup(pipefdout[1]) == -1 ){
perror("duplicating apt stderr");
exit(1);
}
// Launch apt
if( execl(apt_path,apt_path,NULL) == -1 ){
perror("can't find apt");
exit(1);
}
}else{
// father, this process, continues execution
// Close unusable channels
close(pipefdin[0]);
close(pipefdout[1]);
// Return the right values to control the apt
*aptin_k = pipefdin[1];
*aptout_k = pipefdout[0];
}
----
aptin_k doit être le fd pour écrire sur la stdin du prog que tu veux controller, et aptou_k doit être là où tu lis pour récupérer sa stdout...
En espérant te filer un coup de main...
[^] # Re: C
Posté par niol (site web personnel) . En réponse au journal C. Évalué à 1.
# Re: "Réplication" d'affichage X
Posté par niol (site web personnel) . En réponse au journal "Réplication" d'affichage X. Évalué à 3.
$ apt-cache search export current x11 display
rfb - VNC Server for X11 - exports current display
J'avoue que je n'ai pas testé, mais ca devrais faire ce que cà dit non?
-----
Like the xvncserver package, x0rfbserver exports an X display using the RFB protocol.
Unlike xvncserver which creates a virtual X11 display to export, X0rfbserver actually exports the display it is run in... just like the windows VNC server.
Also included are rfb utilities to capture and replay RFB data streams, and a vnc viewer.
[^] # Re: Together c'est de la balle mais c'est pas libre
Posté par niol (site web personnel) . En réponse au journal Modélisateur UML gratuit: Poseidon CE. Évalué à 2.
Les plus :
- vérifications syntaxiques du langage UML
- créations de métamodèles ou profiles (manière d'organiser son étude, manière de "bien parler" en rappelant que UML n'est qu'un langage)
- personnalisation à l'infini de la génération de documentation/code (bien que des modules prédéfinis existent déjà)
- liens entre les différents niveau de modélisation
C'est peut-être confus ce que je dis, mais cà prends son sens dans le "model driven engineering" (http://www.objecteering.com/pdf/whitepapers/us/mda.pdf(...)) (PDF) qui en gros essaye de spécifier une méthode pour développer juste avec des modèles de plus en plus précis et toujours avoir du code synchronisé avec les modèles. Attention cependant à prendre avec des pincettes les passages pubs pour le logiciel.
Dernière chose, générer un diagramme à partir du code n'a aucun intéret (on perds des infos qui y seraient si on étais partis du modèle), tout comme utiliser UML pour spécifier un petit système ou un algorithme.