Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
nombre réponses : 25

#0 Re : -1 »  Quel langage ayant un lien avec Linux ? » Le 07/04/2015, à 10:37

claudius01
Réponses : 15
grim7reaper a écrit :

Mouais, Java est pas super populaire sur Linux il me semble (j’utilise aucun logiciel en Java sur Linux, il y‘en a mais ça court pas les rues j’ai l’impression).

Objection votre honneur.
Dans le domaine de l'embarqué "populaire", c'est tout le contraire et je ne citerais que:

Sachant que Linux est l'OS de base de ces 2 plates-formes ;-)

#1 Re : -1 »  Quel langage ayant un lien avec Linux ? » Le 07/04/2015, à 14:21

claudius01
Réponses : 15
Rufus T. Firefly a écrit :

...Apprendre un langage, c'est transcrire le pseudo-code dans ce langage, et ça c'est la partie de loin la plus facile, il suffit de respecter la syntaxe...

Pas tout à fait d'accord.
L'utilisation d'un langage ne se limite pas à sa syntaxe qui est effectivement le plus facile (ce qui est totalement vrai aujourd'hui à la différence d'une époque où on se demande si les concepteurs dudit langage ne le faisaient pas exprès de complexifier la chose ;-). Après il y a tous les apports autour du langage et ce dans des domaines parfois très spécifiques; ce sont les packages de Java, les Modules de Perl, la libc du Langage C, la STL du Langage C++, etc.
Et là, c'est là que cela coince souvent car si je ne prends que la libc: cf. Function and Macro Index à regarder systématiquement avant de se lancer à écrire du code qui existe déjà. Sauf erreur de ma part c'est pareil pour tous les langages informatiques qui sont comme les langues humaines: Le plus dur est de penser dans la culture de cette langue humaine [de ce langage informatique]...

#2 Re : -1 »  Quel langage ayant un lien avec Linux ? » Le 07/04/2015, à 15:37

claudius01
Réponses : 15
grim7reaper a écrit :

...Un langage vient avec sa « philosophie » (c’est pas le bon mot, mais j’arrive pas à retrouver le mot qui va bien).

Ce mot ne serait-il pas le paradigme.

#3 Re : -1 »  Quel langage ayant un lien avec Linux ? » Le 07/04/2015, à 16:01

claudius01
Réponses : 15

Ok grim7reaper, et bien philosophie me plait bien ;-)

#4 Re : -1 »  exécuter CAT d'un programme C » Le 03/04/2015, à 10:22

claudius01
Réponses : 8

Bonjour,

A défaut de te donner une réponse (je sèche toujours ;-), pourquoi veux-tu utiliser 'execl' qui n'est pas facile à utiliser.
Une piste: une autre fonction de la libc permet de répondre au problème plus facilement...

#5 Re : -1 »  exécuter CAT d'un programme C » Le 03/04/2015, à 17:03

claudius01
Réponses : 8

Le dernier argument de 'execl' doit toujours être un NULL pointeur.
cf. man execl

#6 Re : -1 »  Probléme avec l'installation de CORE Library et gmp [RESOLU ] » Le 02/04/2015, à 10:21

claudius01
Réponses : 6

Bonjour,

Je te propose de lancer les 2 commandes suivantes et d'indiquer leur résultat respectif

$ echo $LD_LIBRARY_PATH
$ sudo find / -type f -name "libgmp*.so"

De plus, il serait utile d'avoir la trace de l'édition de lien du Makefile qui produit 'gmptest' (ou 'testgmp' ;-)

#7 Re : -1 »  Probléme avec l'installation de CORE Library et gmp [RESOLU ] » Le 02/04/2015, à 11:22

claudius01
Réponses : 6

Ok merci,

J'ai oublié une '*" dans la commande 'find' pour avoir toutes les librairies 'libgmp*.so*'

$ sudo find / -type f -name "libgmp*.so*"
/usr/lib/x86_64-linux-gnu/libgmp.so.10.0.2
/usr/lib/x86_64-linux-gnu/openssl-1.0.0/engines/libgmp.so
/usr/lib/i386-linux-gnu/ssl/engines/libgmp.so
/usr/lib/i386-linux-gnu/openssl-1.0.0/engines/libgmp.so

Peux-tu recommencer...

#8 Re : -1 »  Probléme avec l'installation de CORE Library et gmp [RESOLU ] » Le 02/04/2015, à 11:59

claudius01
Réponses : 6

Pour information, le programme étant généré, la commande suivante permet de savoir quelles librairies dynamiques sont requises et à quels endroits elles sont recherchées et trouvées (ou pas trouvées ;-).

$ ldd /<chemin_absolu>/<nom_programme>

NB: N'oublie pas de rééditer ton 1er message et d'ajouter un "Résolu" dans son objet.

#9 Re : -1 »  Commande Ubuntu dans un code JAVA » Le 19/03/2015, à 11:35

claudius01
Réponses : 16
YOSS a écrit :

... Le probleme est que JAVA est trop rapide.

Merci pour lui ...
Mais non, c'est que ledit programme tcpdump est exécuté en parallèle dans un thread de la JVM pendant que le code de la classe Tcpdump continue son petit bonhomme de chemin.

A la place de Thread.sleep(15000), il serait plus propre et même fortement conseillé d'utiliser la méthode waitFor() sur l'objet Process p1 comme expliqué dans Executing Operating System Commands From Java.

YOSS a écrit :

... mais je n'obtiens pas de résultat.

Peux-tu être plus précis. Merci par avance

#10 Re : -1 »  Commande Ubuntu dans un code JAVA » Le 19/03/2015, à 15:53

claudius01
Réponses : 16

J'imagine que tu as vérifié que le fichier pcap généré par tcpdump existe bien.
Donc vu que JAVA est trop rapide n'est pas synchronisé dans la version qui utilise Thread.sleep(15000), je t'invite à utiliser la méthode waitFor() et de tracer juste après le code exit retourné par tcpdump au moyen de exitValue() (cf. Class Process).
A suivre...

#11 Re : -1 »  Commande Ubuntu dans un code JAVA » Le 22/03/2015, à 00:02

claudius01
Réponses : 16

Bonsoir,

Tu n'as pas choisi une commande "facile"...
Il se trouve que "tcpdump" se termine sur des critères bien précis...
Je te propose la commande suivante qui "tue" tcpdump après 15 secondes

$ date; echo 'password' | sudo -S tcpdump -i eth1 -w test.pcap & sleep 15 && sudo pkill -HUP -f tcpdump; date

qui donne bien

Sat Mar 21 22:52:49 CET 2015
[3] 10251
[sudo] password for XXXX:
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes
34 packets captured
34 packets received by filter
0 packets dropped by kernel
Sat Mar 21 22:53:04 CET 2015

avec un fichier "test.pcap" créé

$ ls -l test.pcap
-rw-r--r-- 1 root root 2732 Mar 21 22:53 test.pcap

Si ok, insérer cette commande dans le programme Java comme suit:

String locArgs1[] = {"bash", "-c", "date; echo 'password' | sudo -S tcpdump -i eth1 -w test.pcap & sleep 15 && sudo pkill -HUP -f tcpdump; date"};

A suivre...

#12 Re : -1 »  [Resolu] Lecture de fichier ligne par ligne » Le 20/03/2015, à 12:00

claudius01
Réponses : 3

Bonjour,

Je mettrais ma main à couper que cette classe a été écrite sous un éditeur puis compilé en ligne de commande...
Faire du Java de cette manière là est contre productif même pour classe d'une vingtaine de lignes ;-)
Un seul conseil, choisir un IDE Java et s'investir au moins une journée pour une prise en main minimale...

Maintenant pour répondre à ta question, il m'a suffit de coller ton code dans Eclipse (c'est mon choix, mais d'autres IDE comme Geany permettent la même démarche) et en suivant ses avertissements et erreurs indiqués, voilà la classe qui fonctionne:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

class LireLigne {
	public static void main(String[] argv) {
		String filePath = "/tmp/pangramme";
		try {
			Scanner scanner = new Scanner(new File(filePath));
			while (scanner.hasNextLine()) {
				String line = scanner.nextLine();
				System.out.println(line);
			}
			scanner.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
	}
}

et dont l'exécution sur le pangramme de Georges Perec reécrit avec un mot par ligne donne bien:

$ pwd
/home/tmp/Java

$ javac LireLigne.java && java -cp /home/tmp/Java LireLigne

Portons
dix
bons
whiskys
à
l'avocat
goujat
qui
fumait
au
zoo.

(Georges Perec)

et en cas de fichier non trouvé:

java.io.FileNotFoundException: /tmp/pangramme (Le fichier spécifié est introuvable)
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(Unknown Source)
	at java.util.Scanner.<init>(Unknown Source)
	at LireLigne.main(LireLigne.java:10)

Maintenant, à toi de voir par différence ce qu'il n'allait pas ;-)

#13 Re : -1 »  Fermer une fenêtre OpenCV en C++ » Le 19/03/2015, à 15:03

claudius01
Réponses : 1

Bonjour,

Ah bon. En C++ sans doute mais en C cf. Google: opencv window close event method
Suffit maintenant d'appeler du C à partir du C++, ce qui est un autre sujet ;-)

#14 Re : -1 »  Xunmapwindow : fenêtre toujours visible! » Le 17/03/2015, à 12:45

claudius01
Réponses : 6
Lolichou a écrit :

Bon, j'ai récupéré les sources de xorg-server, je cherche la définition de cette fonction [XUnmapWindow()] mais pas moyen de la trouver, la seule chose que je trouve ce sont les endroits ou est appelée cette fonction :

A défaut de te dire où se trouve cette fonction XUnmapWindow() (toutes les librairies X11 sur mon Linux sont strippées ;-), j'ai le regret de t'annoncer qu'elle ne rend pas invisible une fenêtre ;-(

Explication: Je suis parti de l'exemple xdemo.c dans lequel j'ai encadré l'appel à XUnmapWindow() par

...
   /* Done */
   printf("Awaiting 3 Sec...\n");
   sleep(3);
   printf("Call XUnmapWindow()\n");
   XUnmapWindow(thedisplay,thewindow);

   printf("Awaiting 5 Sec...\n");
   sleep(5);

   printf("Bye bye\n");
   XFreeGC(thedisplay,thecontext);
   XDestroyWindow(thedisplay,thewindow);
   XCloseDisplay(thedisplay);
}

La compilation + exécution ne produit pas l'effet attendu; à savoir l'invisibilité de la fenêtre associée durant 5 secondes avant la sortie du programme

$ gcc -o xdemo xdemo.c -lX11

$ nm xdemo | grep XUnmapWindow
                 U XUnmapWindow
$ ldd xdemo
        linux-vdso.so.1 =>  (0x00007fff0cdff000)
        libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f1786dde000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1786a1f000)
        libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f1786800000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f17865fc000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f1787133000)
        libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f17863f9000)
        libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f17861f2000)

$ ./xdemo
Awaiting 3 Sec...
Call XUnmapWindow()
Awaiting 5 Sec...               => Fenêtre avec le carré Vert + triangle Rouge toujours visible
Bye bye

En espérant t'avoir aidé, il doit y avoir une autre méthode pour rendre invisible une fenêtre X11...
Tu peux essayer de faire un "nm | grep XUnmapWindow" sur les 'libX*.so*' et 'libx*.so*'

#15 Re : -1 »  Xunmapwindow : fenêtre toujours visible! » Le 17/03/2015, à 17:46

claudius01
Réponses : 6

Merci grim7reaper, j'ai bien le résultat attendu; à savoir la suppression de la fenêtre 5 secondes avant la sortie du programme.

$ ./xdemo

Receive MapNotify notification
Awaiting 3 Sec...
Call XUnmapWindow()
Wait UnmapNotify notification...
Receive UnmapNotify notification          => Suppression de la fenêtre avec le carré Vert + triangle Rouge
Awaiting 5 Sec...
Bye bye

En complétant le code par

...
   /* Done */
   printf("Awaiting 3 Sec...\n");
   sleep(3);
   printf("Call XUnmapWindow()\n");
   XUnmapWindow(thedisplay,thewindow);

   /* Wait for the UnmapNotify event */
   printf("Wait UnmapNotify notification...\n");
   for (;;) {
      XNextEvent(thedisplay, &anevent);
      if (anevent.type == UnmapNotify) {
         printf("Receive UnmapNotify notification\n");
         break;
      }
   }
   
   printf("Awaiting 5 Sec...\n");
   sleep(5);

   printf("Bye bye\n");
   XFreeGC(thedisplay,thecontext);
   XDestroyWindow(thedisplay,thewindow);
   XCloseDisplay(thedisplay);
}

En résumé, XUnmapWindow fait bien son travail ;-)

#16 Re : -1 »  Xunmapwindow : fenêtre toujours visible! » Le 18/03/2015, à 17:25

claudius01
Réponses : 6
Lolichou a écrit :

... Et puis j'ai remarqué que la fenêtre "loupe" des événements parfois.

Avec atomClose je dois parfois cliquer plusieurs fois sur la croix pour que la fenêtre se referme. (Je n'utilise pas DestroyNotify sinon j'ai une erreur sur le terminal)

Faut instrumenter le code, s'appuyer sur les logs du serveur X et sans doute examiner la queue des événements avec XPeekEvent.

#17 Re : -1 »  librairie UART (programmation C sur AVR) » Le 13/03/2015, à 15:58

claudius01
Réponses : 8

Bonjour,

Zaphod-Beeblebrox a écrit :

Du coup tout ça m'oblige à créer des tas de fonctions...

no_spleen a écrit :

As-tu déjà regardé du côté de avr-libc ?

http://www.nongnu.org/avr-libc/

C'est effectivement une solution (les sources sont tous là: Index of /releases/avr-libc)

Maintenant, une autre solution est de partir de la Libc du Gnu (versions ici: http://ftp.gnu.org/gnu/glibc/) dont la liste des fonctions et macros est impressionnante: cf. Function and Macro Index.
Après, faire son marché dans les sources et recoller avec le projet AVR avec en particulier l'émission/réception sur une ligne UART d'un caractère.
cf. Using the USART with AVR-GCC qui devrait grandement t'aider.

Attention, vérifier que le codage des float est identique dans la Libc du Gnu et celui attendu dans le monde AVR qui utilise un compilateur Gnu; codage qui devrait être identique (dans le cas contraire, se replier sur une fonction que retourne les 2 parties "entière + décimale" codées chacune sur un int ou un long ;-)

NB: Personnellement, c'est ce que je fais dans une autre famille de microcontrôleurs pour éviter de prendre une librairie beaucoup trop lourde pour les quelques fonctions qui m'intéressent et qui ne pourrait pas être flashée dans la mémoire programme que je m'impose.

#18 Re : -1 »  Problème Openjdk-8 » Le 10/03/2015, à 11:11

claudius01
Réponses : 7

Bonjour,

A défaut d'explication et sauf erreur de ma part, ton problème serait connu ;-)
cf. Debian Bug report logs - #760926 openjdk-8: Missing JPEGImageReader functions in libjavajpeg.so tiré du fil de discussion Does not work with OpenJDK 8 on Linux, use 7.

Un workaround consisterait à:
Is this bug being worked on or will it be soon? It seems like a simple build issue since swapping out libjavajpeg.so with one from a openjdk-7-jdk install solves the issue.

#19 Re : -1 »  Problème Openjdk-8 » Le 10/03/2015, à 11:56

claudius01
Réponses : 7

As-tu essayé le workaround ?!.
Si c'est ok, cela donnera un début d'explication qui sent un petit problème de packaging...

#20 Re : -1 »  Problème Openjdk-8 » Le 10/03/2015, à 18:58

claudius01
Réponses : 7
hyppothalus a écrit :

Qu'est-ce que le workaground ?

solution de contournement abordé au post #2

#21 Re : -1 »  Problème Openjdk-8 » Le 11/03/2015, à 11:22

claudius01
Réponses : 7

Ce bug #760926 est déjà remonté comme indiqué dans mes précédents post.
Faut pas être perdu mais simplement patient ... un status a été demandé le 10/02/2015 (cf. Bug#760926: Request for current status -> openjdk team mailing list archive).
Tu peux toujours contacter l'équipe en charge du projet (cf. OpenJDK Team <openjdk@lists.launchpad.net>)

#22 Re : -1 »  Récupérer login/mdp via Zenity/sed... » Le 03/03/2015, à 12:38

claudius01
Réponses : 4

Et pourquoi veux-tu absolument utiliser sed ?!...

#23 Re : -1 »  Projet en java : Bonhomme dans le désert à la Pokémon » Le 02/03/2015, à 12:09

claudius01
Réponses : 6

S'agissant de "l'accélération matérielle", sous entendu graphique et donc utilisation du GPU, à priori libgdx, JMonkey Engine 3, Java2D et Java 3D s'appuient sur OpenGL (Open Graphics Library)...

#24 Re : -1 »  Problème installation g++ » Le 28/02/2015, à 22:17

claudius01
Réponses : 3
Airks a écrit :

... Avant de rager je vais essayer de l'installer plusieurs fois de plusieurs façons en suivant les forums et autres tutos mais rien a faire, il ne veut rien entendre, et j'ai toujours le même message:

sudo apt-get install g++
...

De tout façon, g++ ne s'installe pas comme cela: cf. Compilation sous Ubuntu § 2.1 - Installation du compilateur GNU C et du compilateur GNU C++

Remarque: Suffit de faire une recherche "g++ Documentation" et ce, sans quitter le forum Ubuntu ;-)