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".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails) *** mise à jour 12/10/2014 ***

nombre réponses : 25

#0 Re : -1 »  passer un paramètre au préproc' de gfortran ou gcc » Le 15/10/2014, à 16:20

claudius01
Réponses : 2

Pour ce qui est de gcc (pour gfortran, j'imagine que cela doit être similaire), c'est l'option -D... (cf. gcc(1) - Linux man page):

-D name=definition
    The contents of definition are tokenized and processed as if they appeared during translation phase three
in a #define directive. In particular, the definition will be truncated by embedded newline characters.

    If you are invoking the preprocessor from a shell or shell-like program you may need to use the shell's
quoting syntax to protect characters such as spaces that have a meaning in the shell syntax.

    If you wish to define a function-like macro on the command line, write its argument list with surrounding
parentheses before the equals sign (if any). Parentheses are meaningful to most shells, so you will need
to quote the option. With sh and csh, -D'name(args...)=definition' works.

    -D and -U options are processed in the order they are given on the command line. All -imacros file
and -include file options are processed after all -D and -U options.

#1 Re : -1 »  Probléme execution d'un projet code::blocks » Le 10/10/2014, à 14:34

claudius01
Réponses : 23
totoirl a écrit :

... sauf que quand je fais exécuter, c'est ce message qui s'affiche :

Checking for existence : /home/user/Bureau/test2/bin/Debug/test2
Executing : xterm -T test2 -e /usr/bin/cb_console_runner LD_LIBRARY_PATH=$LD etc...
Process terminated with status 255 (0 minute(s), 0 second(s))

255 = (128 + 127) =>  127 est l'erreur "command not found" (cf. Are there any standard exit status codes in Linux ?)
Pour moi le binaire '/home/user/Bureau/test2/bin/Debug/test2' n'existe pas ou n'a pas les bons droits d'exécution notamment et comme l'exemple qui suit le montre:

$ ./un_programme_qui_n_existe_pas
bash: ./un_programme_qui_n_existe_pas: No such file or directory
$ echo $?
127

#2 Re : -1 »  Probléme execution d'un projet code::blocks » Le 10/10/2014, à 16:33

claudius01
Réponses : 23
totoirl a écrit :

et donc, comment règle t'on le problème ?? car le fichier existe bel et bien ! ce serait donc un problème de droits ?

Peux-tu donner les résultats des 3 commandes lancées depuis une console xterm:

ls -l /home/user/Bureau/test2/bin/Debug/test2

/home/user/Bureau/test2/bin/Debug/test2

ldd /home/user/Bureau/test2/bin/Debug/test2

#3 Re : -1 »  [Tutoriel python] Introduction a la programmation 3D avec pyopengl. » Le 09/10/2014, à 11:54

claudius01
Réponses : 4
ubuntuforce a écrit :

Le tutoriel est au format zip car généré avec sphinx: c'est le générateur de documentation pour python qui est basé sur le langage de documentation officiel par convention pour python: ReST (Re Structured Text) ... et donc aussi par le biais de sphinx ...

Effectivement ReST / Sphinx, c'est vraiment très bien fait et puissant comme on peut le voir dans une autre application d'un éditeur de texte en ligne NoTex:
cf. https://notex.ch/home/ + Télécharger (Export as ... HTML) en local le site web généré (point d'entrée: content.html) et en prime, vous saurez tout sur ... l'équivalence Masse-énergie (E = mc² ;-)

#4 Re : -1 »  IDE pour C/C++ » Le 01/10/2014, à 17:56

claudius01
Réponses : 9

Bonjour,

akrogames a écrit :

... Bon ne me dites pas d'utiliser emacs...

Je ne vois que vim alors ;-)
Non, plus sérieusement regarde du coté de IDE : Eclipse


Cordialement, A+
--
Claudius

#5 Re : -1 »  IDE pour C/C++ » Le 02/10/2014, à 16:49

claudius01
Réponses : 9
akrogames a écrit :

merci à toi pour ta réponse. Je pense que je vais rester finalement avec mon emacs.

De rien, je vais également rester avec vim ;-))
Je n'utilise Eclipse uniquement pour les développements Java car là c'est vraiment incontournable

#6 Re : -1 »  récupération d'une donnée dans la couche physique par le kernel land » Le 06/10/2014, à 15:56

claudius01
Réponses : 2

Bonjour,

xelaa a écrit :

...Étant débutante en programmation noyau je ne sais absolument pas comment je peut récupérer cette donnée au niveau noyau ["survey->channel-time-busy" présente dans la couche physique ( Mac80211-ops)], avec un code, il serait trés aimable si quelqu'un pouvait m'aider.

J'ai trouvé cela avec une référence à 'survey->channel-time-busy' : Linux/drivers/net/wireless/ath/ath5k/mac80211-ops.c
présent dans la méthode:
static int ath5k_get_survey(struct ieee80211_hw *hw, int idx, struct survey_info *survey);

En espérant t'avoir aidée ou à défaut orientée vers une piste...


Cordialement, A+
--
Claudius

#7 Re : -1 »  Exécuter un jar via PHP sur serveur Ubuntu Apache » Le 28/08/2014, à 11:34

claudius01
Réponses : 11

Bonjour,

Je ne pense pas car TomCat est avant tout un serveur de Servlets et JSP.
Dans ton cas, tu fais appel au système pour lancer ledit .jar dans la JVM.


Cordialement, A+
--
Claudius

#8 Re : -1 »  Exécuter un jar via PHP sur serveur Ubuntu Apache » Le 28/08/2014, à 13:23

claudius01
Réponses : 11

Run Java class file from PHP script on a website
Executer un programme java depuis php
execute java application from php

trouvés avec ce cher Google: php java execution

Bonnes lectures...


Edit: Attention aux aspects sécurité si ce serveur a un accès public (cf. php exec security problems ?) avec notamment

1) exec ('ping google.com') ;
2) exec ('ping' $ _GET ['domaine']);. .
3) exec ('ping' escapeshellarg ($ _GET ['domaine']));

Exemple 1 est sûr, parce que vous ne pouvez pas "injecter" quoi que ce soit en elle; c'est une chaîne codée en dur.
Exemple 2 est très dangereux, parce que vous pouvez facilement injecter quelque chose dans la valeur de $ _GET ['domaine'].
Exemple 3 est très sûr, parce que la fonction escapeshellarg() empêche les gens d'ajouter des trucs supplémentaires comme "rm-f /" ou autre ..

Les Pro de PHP que je ne suis pas me corrigeront si grosses bétises ;-)


Cordialement, A+
--
Claudius

#9 Re : -1 »  Exécuter un jar via PHP sur serveur Ubuntu Apache » Le 26/09/2014, à 11:25

claudius01
Réponses : 11

Je ne pense pas, cela serait plutôt des droits définis dans le php.ini (que Apache peut modifier/compléter)
cf. exec — Exécute un programme externe

#10 Re : -1 »  Exécuter un jar via PHP sur serveur Ubuntu Apache » Le 26/09/2014, à 13:57

claudius01
Réponses : 11
tanebisse a écrit :

J'arrive à exécuter le code [java] en ligne de commande mais pas depuis ma page web via un script PHP qui s'exécute sur le serveur.

As-tu testé via la page Web un autre bout de code que java en guise de lever de doute (droits d’exécution / java / etc.) avec par exemple:

<?php
...
$command = 'ls -l';
exec($command, $result, $return);

if ($return == 0) {
   echo '=> [' . $result[0] . ']'; echo '<br />';
}
...
?>

#11 Re : -1 »  Exécuter un jar via PHP sur serveur Ubuntu Apache » Le 01/10/2014, à 14:20

claudius01
Réponses : 11
tanebisse a écrit :

L'application utilise Java 7 hors j'ai java 8 d'installé et quand je passe par l'invite de commande en faisant java -version c'est bien java 8 qui ressort.
Sans être obligé d'indiquer le lien en dur dans ma commande

Où puis-je spécifier le chemin vers Java pour l'exécution du programme ? N'y a-t-il pas un fichier de config quelque part ? Dans Apache peut-être ?

- Sauf erreur de ma part, "Dans Apache peut-être ?", je ne pense pas...
- Maintenant, il est fort probable qu'une exécution depuis la ligne de commande est faite au travers de bash qui a un .profile avec le bon PATH alors que depuis le exec de PHP, celle-ci se fasse au travers de sh dont le PATH est très limité

En effet, j'ai fais un test qui montrerais cela:

$ ps
  PID TTY          TIME CMD
 2288 pts/0    00:00:00 bash
 4445 pts/0    00:00:00 ps

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:...

Alors que depuis PHP par la méthode: getenv("PATH")

<?php
   ...
   print 'PATH [' . getenv("PATH") . ']';
   ...
?>

PATH [/usr/local/bin:/usr/bin:/bin] 

A confirmer/infirmer sur ton système avec le même type de test et si oui, mettre à jour la variable PATH comme indiqué dans le fil de discussion PHP exec $PATH variable missing elements

NB: J'ai eu le même souci avec la variable LD_LIBRARY_PATH que j'ai dû valoriser dans un exec depuis PHP pour l'appel d'un programme écrit en langage RUST ;-)

#12 Re : -1 »  Interface graphique pour un programme en ligne de commande » Le 31/07/2014, à 17:52

claudius01
Réponses : 25

Bonjour,

Fly0s a écrit :

J'ai développé un petit programme (enfin, pour être plus précis et modeste, j'ai modifié un code source déjà existant) qui fait une analyse statistique à partir de données génétiques, écrit en C++ et qui tourne très bien sous Windows/Mac/Linux, mais en ligne de commande.

Pourquoi pas un formulaire Web de saisie qui ne nécessite de développer qu'une page en HTML + Python, PHP, Javascript, etc. et à déployer localement puis à proposer une URL du type "file:///xxxx" avec présentation des résultats après appel à ce "petit programme" pour les utilisateurs avec leur navigateur préféré (un seul développement pour 3 plates-formes ;-)

NB: Cela s'appelle une solution avec un client léger en opposition au client lourd.


Cordialement, A+
--
Claudius

#13 Re : -1 »  Interface graphique pour un programme en ligne de commande » Le 31/07/2014, à 21:00

claudius01
Réponses : 25
alius a écrit :

Bonne idée, mais cela nécessite que son programme soit entièrement paramétrable avec les arguments de la ligne de commande pour qu'il soit exécutable par python par exemple.

Certes, mais le demandeur maîtrise les sources, donc si le programme n'est pas interactif au sens qu'il s'exécute avec un ensemble de paramètres qui peuvent:
1) Soit être mis dans un fichier qui sera alors écrit suite au post du formulaire puis lu par le programme
2) Soit être mis en ligne de commande et parsés par l'excellent getopt (cf. Example of Getopt)

Maintenant à choisir, je préfère de loin la solution "fichier" qui est plus adaptée si beaucoup de paramètres ( > 10) à prendre en compte et qui plus est, serait au format XML pour une exploitation normalisée au moyen d'outils standards (Formulaire Web => XML notamment + Contraintes sur toutes ou une partie des saisies - cf. Validateur). L'autre avantage est la possibilité donnée à chaque utilisateur de reprendre son propre jeux de paramètres en soumettant ledit fichier au "petit programme".

#14 Re : -1 »  Interface graphique pour un programme en ligne de commande » Le 04/08/2014, à 22:31

claudius01
Réponses : 25

Bonsoir,

Fly0s a écrit :

... Du coup, demander à l'utilisateur d'installer un serveur PHP pour exécuter "l'interface graphique", c'est pas l'idéal si ?

Tout d'abord, cela n'est pas un serveur PHP, et de plus, on ne ne demande jamais à un utilisateur lambda d'installer un serveur quel qu'il soit, ce serveur est déjà installé sous forme d'un deamon par l'administrateur ou la personne qui maîtrise un tant soit peu le système ;-)
En l’occurrence, ce serveur qui fait peur est tout simplement apache2 (cf. Serveur HTTP Apache 2) qui servira tout aussi bien de simples pages HTML avec ou sans Javascript, Python, PHP, et que sais-je...

Fly0s a écrit :

Et j'ai aussi peur que l'utilisateur soit perdu d'avoir à utiliser une page Web pour lancer quelque chose en local...

Si tu savais le nombre de trucs et en particulier les aides en lignes qui sont lancées "en local' via des interfaces Web, et alors il où le problème. Le seul problème est que le l'architecture propose à l'utilisateur une interface de saisie et que le résultat lui soit présenté. Depuis quand l'utilisateur se préoccupe de l'architecture d'une solution si celle-ci lui rend le service souhaité ;-((


Cordialement, A+
--
Claudius

#15 Re : -1 »  Interface graphique pour un programme en ligne de commande » Le 04/08/2014, à 23:31

claudius01
Réponses : 25
alius a écrit :

Ce que veux dire FlyOs c'est que le fait d'utiliser un navigateur web en guise d'interface graphique d'un programme local peut provoquer des confusions. L'utilisateur va par exemple penser que le programme qu'il utilise est sur le net.

Je ne vois toujours pas où est le problème...

Et si un jour le programme est effectivement sur le net (pour des raisons de ressources requises - CPU/Mémoire/Disque/Parallélisation, etc.) là, l'utilisateur sera bien content de ne rien changer à ses "petites" habitudes ?

Désolé, un programme qui fonctionne sur 3 plates-formes / OS et le réduire à une seule ou presque sauf travail de portage aléatoire pour une simple raison d'IHM ne peut me satisfaire dans le principe.

Maintenant, FlyOs fait ce qu'il veut @ à ses utilisateurs et si l'architecture client-serveur lui fait peur, qu'il sache qu'elle est utilisée depuis près de 25 ans (cf. Le client-serveur et le downsizing ;-)

#16 Re : -1 »  [C++] Erreur bind socket! » Le 23/09/2014, à 09:48

claudius01
Réponses : 4

Bonjour,

Avec la valeur du errno, l'erreur serait peut-être plus explicite (cf. man bind() )


Cordialement, A+
--
Claudius

#17 Re : -1 »  [C++] Erreur bind socket! » Le 23/09/2014, à 13:32

claudius01
Réponses : 4

Effectivement, le port 23 est, sauf erreur de ma part, dédié à telnet:

# Network services, Internet style
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, officially ports have two entries
# even if the protocol doesn't support UDP operations.

tcpmux          1/tcp                           # TCP port service multiplexer
echo            7/tcp
echo            7/udp
discard         9/tcp           sink null
...
telnet          23/tcp
smtp            25/tcp          mail
time            37/tcp          timserver
...
"/etc/services" [lecture-seule] 605 lignes --0%--             1,1          Haut

#18 Re : -1 »  [C++] Taille d'un tableau par un pointeur. » Le 01/08/2014, à 17:40

claudius01
Réponses : 10

Bonjour,

moi4567 a écrit :

Je suis en ce moment sur un programme en C++ où j'ai besoin de connaitre la taille d'un tableau (de string) seulement à l'aide d'un pointeur. Je me retrouve donc à l’intérieur de cette fonction avec un pointeur sur le tableau en question.

Dans cette fonction, la seule connaissance de ce pointeur ne permettra jamais de connaître la taille sur l'objet pointé (Normal: l'adresse d'une maison dans une rue ne permet pas de connaître le nombre d'habitants de cette rue ;-).

C'est effectivement très bien de ne pas rendre global ce tableau (ou tout objet) ...

Une solution que je vois est, sauf erreur de ma part, d'implémenter une classe permettant de gérer ce tableau et en particulier des méthodes d'accès à celui-ci (allocation, destruction, ajouts/retraits d'éléments, nombre d'éléments, taille, etc.). En résumé cela revient à encapsuler un simple tableau dans un objet ce qui peut sembler compliqué mais c'est malheureusement le prix à payer avec la POO ;-).
Le pointeur sur le tableau disparait alors au profit d'un pointeur sur cette classe ce qui en soit n'est pas plus compliqué pour son utilisation...

cf. à l'occasion Les chaînes de caractères : std::string bien que je pense que tu maîtrises le sujet.


Cordialement, A+
--
Claudius

#19 Re : -1 »  Rust, nouveau langage de programmation made by Mozilla » Le 31/07/2014, à 16:27

claudius01
Réponses : 1

Bonjour,

Je rafraîchi ce post car depuis, la version 0.11 est sortie (cf. http://www.rust-lang.org/ et http://linuxfr.org/news/rust-s-oxyde-en-version-0-10).
De plus, il y a t'il ici des pratiquants de la 1ère heure ou récemment convertis à ce langage auquel je m'intéresse depuis peu de temps.


Cordialement, A+
--
Claudius

#20 Re : -1 »  Bloqué dans ma programmation » Le 08/07/2014, à 10:13

claudius01
Réponses : 12

Bonjour,

Louupss a écrit :

Sa Cela marche maintenant mais quand je rentre les 3 valeurs.
Mais après sa ça plante

Avec une utilisation de scanf comme je le vois 3 fois dans le programme

    ...
    int metal = 0; int tritium = 0; int zircans = 0;
    ...
    scanf("%d", metal);
    scanf("%d", tritium);
    scanf("%d", zircans);
    ...

Ce n'est pas étonnant que cela tombe en marche (cf. un exemple d'utilisation de scanf avec une alternative à cette méthode scanf et consorts qui est à bannir et qui n'aurait jamais dû exister ;-)


Cordialement, A+
--
Claudius

#21 Re : -1 »  [RESOLU] Comment recupérer les sources d'un logiciel ? » Le 04/07/2014, à 10:21

claudius01
Réponses : 9

Bonjour,

White Angels a écrit :

Du coup j'aimerais savoir [oû] je peux télécharger le programme "sort" qu'on tape dans le shell...

Sauf erreur de ma part, ce programme sort est dans le package coreutils:
http://www.gnu.org/software/ -> http://www.gnu.org/software/coreutils/ -> sort.c dans un des paquets


Cordialement, A+
--
Claudius

#22 Re : -1 »  [RESOLU] Comment recupérer les sources d'un logiciel ? » Le 04/07/2014, à 13:27

claudius01
Réponses : 9
White Angels a écrit :

... il [le programme] triait que les entiers...

Je n'ai pas vérifié que si sort trouve uniquement des entiers à trier (une 1st passe de lecture serait alors nécessaire), il se replie sur le bon opérateur de comparaison numérique. A défaut, sort va utiliser le strcmp sur des chaînes qu'elles soient numériques ou alphabétiques.
Donc, attention à ne pas comparer (c'est le cas de le dire ;-) des choses incomparables.

Il faudrait un résultat de comparaison sur un fichier tel que le fichier source de sort.c par exemple et constitué effectivement de ~4500 lignes.

#23 Re : -1 »  Execution d'une commande en C » Le 02/07/2014, à 18:43

claudius01
Réponses : 12

Parce que le * est résolu par le ksh ou le bash de la session terminal.

#24 Re : -1 »  Execution d'une commande en C » Le 02/07/2014, à 20:34

claudius01
Réponses : 12

Effectivement, intéressant comme problème.
Problème de droits d'accès peut-être ?

Edit: De plus, le message "Aucun fichier ou dossier de ce type" ferait penser que le "/dev/video*" n'est pas présent au travers de la commande execvp, alors qu'il semble l'être depuis une session terminal ?!.. Vraiment intéressant ce problème qui mérite de le reproduire, ce que je m'en vais faire dans une VM.
A suivre...