Mouais, enfin c'est sa première installation de Linux et il a eu le courage de se " jeter dans le bain ", ce qui est une très bonne chose, mais il ne faut pas lui demander d'avoir tout de suite le réflexe de regarder dans le log ... Il faut déjà qu'il découvre un peu l'environnement.
Thibaud, qu'utilises-tu pour te connecter à Internet ? Une freebox ou un modem classique ?
Dans le deuxième cas:
- tu vas dans " Système -> Administration -> Réseau ";
- tu sélectionnes "Connexion par Modem";
- tu cliques sur le bouton "Propriétés";
- tu coches "Activer cette connexion";
- tu remplis les champs idoines;
- tu cliques sur l'onglet Modem;
- tu fais "Autodétecter".
Par la suite, dans la boite " Système -> Administration -> Réseau ", les boutons Activer et Désactiver te permettront de te connecter et te déconnecter.
Sache toutefois qu'il s'agit là de front-ends, pas trop mal réalisés ma foi, pour faire pour toi une configuration Unix qui tienne la route. Je te conseille de te mettre dès que possible à la ligne de commande et à découvrir l'environnement Unix en général pour en exploiter la pleine puissance et, surtout, ne pas rester dépendant d'un environnement particulier.
Ce qu'il veut faire, c'est un verrou, tout simplement (ou lock).
man flock
man lockf
A noter que flock() propose des verrous consultatifs par défaut (advisory). Pour créer des verrous obligatoires (mandatory), il faut passer une option spéciale à mount.
Toutefois, il est effectivement important de régler correctement les droits d'un fichier avant de commencer à régler des problèmes par ce genre de solution.
Personnellement, je ne travaille pas dans les télécoms à proprement parler, mais il me semble qu'à priori, c'est le genre de choses qui s'inscrit dans le tout ou rien : ou ta ligne est cablée, ou elle ne l'est pas.
Pour la différence de prix, j'imagine que cela s'explique de deux façons :
- Free a été le premier à jeter le pavé dans la marre en offrant du haut et très haut débit à des prix accessibles à tous, en inventant leur Freebox, etc. et en forçant la concurrence à suivre. Il paraitraît que cela nous vaut, pour une fois ces derniers temps, d'être en avance par rapport à nos concitoyens européens.
- Quand tu payes 50 à 70¤ pour un câblage de ligne, tu payes un forfait. En tout cas c'était vrai du temps du service public. Si tu habites en ville dans un quartier câblé depuis longtemps, ce sera un clic sur un terminal, mais si tu habites dans un bled un peu plus paumé et qu'il faut physiquement créer la ligne, tu paieras le même prix même si cela oblige la compagnie à creuser une tranchée devant chez toi. J'exagère mais à peine. Je ne sais pas si c'est toujours vrai aujourd'hui, par contre.
Un nom de variable n'est qu'une référence à un objet en mémoire, au moment de la compilation. Le retour d'une fonction génère un objet en mémoire à une adresse fixe, et qui peut tout à fait être utilisé comme tel.
Par contre, il se peut que le compilateur (cela dépend des versions, en fait) se plaigne car l'objet, temporaire, n'est pas forcément modifiable. Sémantiquement, cela reste incorrect car le prototype de la fonction imbriquée, lui, est formel.
Avec g++ 3.3, j'obtiens :
$ g++ refdef.c++ -o refdef
refdef.c++: In function `int main()':
refdef.c++:35: error: invalid initialization of non-const reference of type 'A&' from a temporary of type 'A'
refdef.c++:22: error: in passing argument 1 of `void First(A&)'
$ g++ -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.3.3/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --enable-shared --enable-threads=posix
--disable-checking --disable-libunwind-exceptions --with-system-zlib
--enable-__cxa_atexit --host=i386-redhat-linux
Thread model: posix
gcc version 3.3.3 20040412 (Red Hat Linux 3.3.3-7)
Avec
/*
...
*/
#include
class A { public: int x; };
void First (A & a) { a.x == 0; }
A Second (void) { return A(); }
int main (void)
{ First ( Second () );
return 0;
}
Il y a surtout quelque chose que l'on ne met jamais en évidence, c'est que l'e-mail n'a pas besoin en soi d'être payant, contrairement au courrier postal qui lui est financé par les seuls envois.
- Le courrier est financé par le timbre !
- L e-mail est financé par l'abonnement que l'on verse à son fournisseur d'accès, dans le cadre du fonctionnement global du réseau.
Cela me dérange que l'on essaie de faire faire l'amalgame dans l'esprit des gens, et encore plus que cela prenne.
C'en est même assez inquiétant : on est habitué à payer pour certaines choses et pas pour d'autres, mais on ne sait plus pourquoi !
Personnellement, une "taxe de principe", ça me dérange.
Oui, et encore : Le SPAM n'est rentable par le nombre que lorsque l'on vend du V13GR4 ou autre, mais lorsque tu fais ta publicité en local en ciblant une liste d'entreprises, voire même que tu décroches ton téléphone pour appeler un particulier et tenter de lui fourguer une cuisine équipée, cela s'appelle du démarchage.
Cela coûte cher, c'est une plaie pour les gens démarchés, le taux de rentabilité doit être grosso-modo le même que celui du spam e-mail pour un volume bien plus réduit, et pourtant il a fallu créer la liste orange pour que les abonnés du téléphone aient un semblant de tranquilité.
Bref, faire sa pub semble être devenu une jungle impitoyable ...
Arg ! Surtout pas ! On ne passe pas en mode noyau simplement parce que le reste a échoué, on essaie plutôt de résoudre le problème en amont ...
Si tu fais une scrutation active (polling) dans un pilote du noyau, c'est le système entier qui va être bloqué le temps que ton pilote se lasse (cela arrive avec certains pilotes propriétaires), et sans possibilité d'interrompre celui-ci avec un Ctrl-C ou un Kill. Je ne parle pas non plus de ce qu'il risque de se passer si ton programme contient des bugs, segfaults, ou autre. je passe également sur le fait que ton pilote va entrer en conflit avec les vrais gestionnaires des ports série et parallèle, et que c'est également lui qui sera chargé de déclarer les ressources comme utilisées ou non auprès du reste du noyau. Enfin, à ce niveau, tu travailles en dessous de toutes les bibliothèques de fonctions. Même un bête printf() te sera interdit. Il te faudra utiliser les fonctions dédiés du noyau ...
un petit branchement me permet de recevoir signal sur une des broches d'un port série, et le but du jeu est de déterminer quand il y a changement d'état sur cette broche. J'ai donc réalisé un petit programme qui lit l'état de cette broche (sur code est inspiré de celui de statserial), et tout fonctionne bien lorsque le signal est lent, mais pas lorsqu'il est rapide.
On va commencer par le début : c'est quelle broche ?
Autrement, plutôt que de faire une scrutation des ports, il faut essayer d'attaquer une ligne suceptible de déclencher une interruption (IRQ), et la lire à ce moment.
D'autre part, je sais que l'interruption 14h du BIOS propose exactement ce genre de choses : les bits 3 à 0 sont nommés bits "delta" pour cela.
* bit 7 : liaison avec le modem récepteur établie
* bit 6 : le téléphone sonne
* bit 5 : modem activé
* bit 4 : modem prêt à émettre
* bit 3 : le bit 7 a changé
* bit 2 : le bit 6 a changé
* bit 1 : le bit 5 a changé
* bit 0 : le bit 4 a changé
Par contre, je ne me souviens plus si c'est l'interruption elle-même qui gère le delta ou bien si c'est le contrôleur série qui les maintient dans son propre registre. De toutes façons, à partir du moment où c'est l'électronique qui nous prévient lorsqu'il est temps de le faire, il est aisé de les remettre en oeuvre ...
Regarde également du coté du sticky bit sur le répertoire en question, typiquement s'il s'appelle " /tmp ".
Sans ça, ce peut quand même être un problème de droit sur le répertoire comme dit plus haut. Ecraser un fichier se fait de deux manières, soit par ouverture/vidage/remplissage du fichier de destination, soit par suppression/recréation, et il fait que le numéro d'inode ne change pas n'est pas probant en soi pour connaître la méthode utilisée ... Je penche quand même pour la première dans le sens où lorsque je fais le test en local, le fichier de destination conserve quand même ses droit et prioriétaire originaux.
Enfin, il se peut très bien qu'il s'agisse d'une facétie de ton FTP, et pas du filesystem. Essaie de faire le test en local ...
Je te conseille de mettre de coté le DOS et Windows pour un moment.
Si tu as fait du Turbo Pascal, du Basic, et des fichiers Bat, certes tes connaissances ont 15 à 20 ans d'âge, mais au moins tu sais faire un peu plus que cliquer sur des icônes.
Dans un premier temps, essaie de te familliariser avec Unix, d'une manière générale. Sa ligne de commande est extrêmement puissante, et te permet la plupart du temps d'arriver à faire ce qui t'aurait nécessité l'écriture d'un programme dans un environnement Microsoft.
Trouve-toi déjà un tutoriel Unix qui te convienne :
Commence par t'entraîner avec le Shell pour être efficace.
---
Ensuite, si tu veux débuter en C++, pas de problème, mais connais-tu déjà le C au moins ? Si ce n'est pas le cas, la plupart des gens te conseillera de commencer d'abord par cela.
Essaie d'explorer gcc et g++ d'un coté, et de lire le cours de Casteyde de l'autre (le meilleur à mon goût) :
La déclaration d'un int dans l'entête de la boucle, oui, est interdit par le C99 (et tant mieux parce que c'est sale). Par contre rien ne t'empêche de créer une locale dans le corps de la boucle, entre les accolades ...
[^] # Re: En tout cas...
Posté par Obsidian . En réponse au message Connexion Internet 56 K. Évalué à 3.
Effectivement, j'avais oublié ce petit détail. Donc, les pages qui conviennent :
http://linmodems.org/
http://www.archilinux.org/astuces/winmodem.html
[^] # Re: En tout cas...
Posté par Obsidian . En réponse au message Connexion Internet 56 K. Évalué à 5.
[^] # Re: En tout cas...
Posté par Obsidian . En réponse au message Connexion Internet 56 K. Évalué à 2.
[^] # Re: En tout cas...
Posté par Obsidian . En réponse au message Connexion Internet 56 K. Évalué à 8.
Thibaud, qu'utilises-tu pour te connecter à Internet ? Une freebox ou un modem classique ?
Dans le deuxième cas:
- tu vas dans " Système -> Administration -> Réseau ";
- tu sélectionnes "Connexion par Modem";
- tu cliques sur le bouton "Propriétés";
- tu coches "Activer cette connexion";
- tu remplis les champs idoines;
- tu cliques sur l'onglet Modem;
- tu fais "Autodétecter".
Par la suite, dans la boite " Système -> Administration -> Réseau ", les boutons Activer et Désactiver te permettront de te connecter et te déconnecter.
Sache toutefois qu'il s'agit là de front-ends, pas trop mal réalisés ma foi, pour faire pour toi une configuration Unix qui tienne la route. Je te conseille de te mettre dès que possible à la ligne de commande et à découvrir l'environnement Unix en général pour en exploiter la pleine puissance et, surtout, ne pas rester dépendant d'un environnement particulier.
Sois le bienvenu dans le monde du libre.
# Moins fort !
Posté par Obsidian . En réponse au message Connexion Internet 56 K. Évalué à 9.
PAS LA PEINE DE CRIER !
[^] # Re: grosse bidouille
Posté par Obsidian . En réponse au message Bloquer l'accès a un fichier utilisé. Évalué à 3.
Ce qu'il veut faire, c'est un verrou, tout simplement (ou lock).
man flock
man lockf
A noter que flock() propose des verrous consultatifs par défaut (advisory). Pour créer des verrous obligatoires (mandatory), il faut passer une option spéciale à mount.
Voir aussi :
/usr/src/linux/Documentation/locks.txt
/usr/src/linux/Documentation/mandatory.txt
Toutefois, il est effectivement important de régler correctement les droits d'un fichier avant de commencer à régler des problèmes par ce genre de solution.
[^] # Re: Barbouzeries
Posté par Obsidian . En réponse au journal Top 500. Évalué à 7.
Tu ne t'es jamais promené sur un skyblog, toi ...
[^] # Re: pas plus pas moins
Posté par Obsidian . En réponse au message Cablage telephonique par Free. Évalué à 10.
Pour la différence de prix, j'imagine que cela s'explique de deux façons :
- Free a été le premier à jeter le pavé dans la marre en offrant du haut et très haut débit à des prix accessibles à tous, en inventant leur Freebox, etc. et en forçant la concurrence à suivre. Il paraitraît que cela nous vaut, pour une fois ces derniers temps, d'être en avance par rapport à nos concitoyens européens.
- Quand tu payes 50 à 70¤ pour un câblage de ligne, tu payes un forfait. En tout cas c'était vrai du temps du service public. Si tu habites en ville dans un quartier câblé depuis longtemps, ce sera un clic sur un terminal, mais si tu habites dans un bled un peu plus paumé et qu'il faut physiquement créer la ligne, tu paieras le même prix même si cela oblige la compagnie à creuser une tranchée devant chez toi. J'exagère mais à peine. Je ne sais pas si c'est toujours vrai aujourd'hui, par contre.
[^] # Re: Oiseau de mauvais augure....
Posté par Obsidian . En réponse au journal la France sort le brésil en quart de finale 1-0. Évalué à 2.
http://www.google.fr/search?hl=fr&q=Pronostics&btnG=(...)
http://www.granddictionnaire.com/btml/fra/r_motclef/index102(...)
[^] # Re: c'est pas des pingouins
Posté par Obsidian . En réponse au journal Logo DLFP. Évalué à 1.
T'as oublié « Mushroom Mushroom » aussi ...
[^] # Re: Oiseau de mauvais augure....
Posté par Obsidian . En réponse au journal la France sort le brésil en quart de finale 1-0. Évalué à 2.
Tout se perd, vraiment ...
# People Ready
Posté par Obsidian . En réponse au message slurrrrrp Buzz Words. Évalué à 2.
http://totalementcretin.apinc.org/#p314
http://www.microsoft.com/france/entreprises/peopleready/defa(...)
[^] # Re: La methode n'est pas déclarée
Posté par Obsidian . En réponse au message Adresse d'un objet?. Évalué à 3.
Un nom de variable n'est qu'une référence à un objet en mémoire, au moment de la compilation. Le retour d'une fonction génère un objet en mémoire à une adresse fixe, et qui peut tout à fait être utilisé comme tel.
Par contre, il se peut que le compilateur (cela dépend des versions, en fait) se plaigne car l'objet, temporaire, n'est pas forcément modifiable. Sémantiquement, cela reste incorrect car le prototype de la fonction imbriquée, lui, est formel.
Avec g++ 3.3, j'obtiens :
Avec
/*
...
*/
#include
class A { public: int x; };
void First (A & a) { a.x == 0; }
A Second (void) { return A(); }
int main (void)
{
First ( Second () );
return 0;
}
[^] # Re: Faire payer l'email ?
Posté par Obsidian . En réponse au journal Comment font les spammeurs de blogs ?. Évalué à 3.
- Le courrier est financé par le timbre !
- L e-mail est financé par l'abonnement que l'on verse à son fournisseur d'accès, dans le cadre du fonctionnement global du réseau.
Cela me dérange que l'on essaie de faire faire l'amalgame dans l'esprit des gens, et encore plus que cela prenne.
C'en est même assez inquiétant : on est habitué à payer pour certaines choses et pas pour d'autres, mais on ne sait plus pourquoi !
Personnellement, une "taxe de principe", ça me dérange.
[^] # Re: C'est une bonne question !
Posté par Obsidian . En réponse au journal Comment font les spammeurs de blogs ?. Évalué à 3.
Cela coûte cher, c'est une plaie pour les gens démarchés, le taux de rentabilité doit être grosso-modo le même que celui du spam e-mail pour un volume bien plus réduit, et pourtant il a fallu créer la liste orange pour que les abonnés du téléphone aient un semblant de tranquilité.
Bref, faire sa pub semble être devenu une jungle impitoyable ...
[^] # Re: Pigeon
Posté par Obsidian . En réponse au journal Linus Torvalds ne sert à rien.... Évalué à 1.
# Nombre de votes :
Posté par Obsidian . En réponse au sondage La liberté la plus importante garantie par la GPL est. Évalué à 9.
Hmm ... Bill Gates et Steve Ballmer ? :-)
[^] # Re: mon humble avis
Posté par Obsidian . En réponse au message Port série. Évalué à 2.
Si tu fais une scrutation active (polling) dans un pilote du noyau, c'est le système entier qui va être bloqué le temps que ton pilote se lasse (cela arrive avec certains pilotes propriétaires), et sans possibilité d'interrompre celui-ci avec un Ctrl-C ou un Kill. Je ne parle pas non plus de ce qu'il risque de se passer si ton programme contient des bugs, segfaults, ou autre. je passe également sur le fait que ton pilote va entrer en conflit avec les vrais gestionnaires des ports série et parallèle, et que c'est également lui qui sera chargé de déclarer les ressources comme utilisées ou non auprès du reste du noyau. Enfin, à ce niveau, tu travailles en dessous de toutes les bibliothèques de fonctions. Même un bête printf() te sera interdit. Il te faudra utiliser les fonctions dédiés du noyau ...
On va commencer par le début : c'est quelle broche ?
Autrement, plutôt que de faire une scrutation des ports, il faut essayer d'attaquer une ligne suceptible de déclencher une interruption (IRQ), et la lire à ce moment.
D'autre part, je sais que l'interruption 14h du BIOS propose exactement ce genre de choses : les bits 3 à 0 sont nommés bits "delta" pour cela.
* bit 7 : liaison avec le modem récepteur établie
* bit 6 : le téléphone sonne
* bit 5 : modem activé
* bit 4 : modem prêt à émettre
* bit 3 : le bit 7 a changé
* bit 2 : le bit 6 a changé
* bit 1 : le bit 5 a changé
* bit 0 : le bit 4 a changé
Par contre, je ne me souviens plus si c'est l'interruption elle-même qui gère le delta ou bien si c'est le contrôleur série qui les maintient dans son propre registre. De toutes façons, à partir du moment où c'est l'électronique qui nous prévient lorsqu'il est temps de le faire, il est aisé de les remettre en oeuvre ...
[^] # Re: Et moi
Posté par Obsidian . En réponse au journal Mmmmm, c'était bon.. Évalué à 3.
[^] # Re: Et moi
Posté par Obsidian . En réponse au journal Mmmmm, c'était bon.. Évalué à 9.
# Babelfish roulaize
Posté par Obsidian . En réponse au journal [HS] Steve Ballmer est manchot. Évalué à 10.
Comprendre :
" Martin Taylor s'est barré chez Google et j'ai encore refait mon bureau à la batte de base-ball " ?
[^] # Sticky Sticky WWW
Posté par Obsidian . En réponse au message Droits sur fichier. Évalué à 2.
Sans ça, ce peut quand même être un problème de droit sur le répertoire comme dit plus haut. Ecraser un fichier se fait de deux manières, soit par ouverture/vidage/remplissage du fichier de destination, soit par suppression/recréation, et il fait que le numéro d'inode ne change pas n'est pas probant en soi pour connaître la méthode utilisée ... Je penche quand même pour la première dans le sens où lorsque je fais le test en local, le fichier de destination conserve quand même ses droit et prioriétaire originaux.
Enfin, il se peut très bien qu'il s'agisse d'une facétie de ton FTP, et pas du filesystem. Essaie de faire le test en local ...
[^] # Re: doucement
Posté par Obsidian . En réponse au message Base de programmation tres limité. Évalué à 2.
[^] # Re: Les fichiers spéciaux ?
Posté par Obsidian . En réponse au message Conseil pour débuter en c++. Évalué à 3.
Si tu as fait du Turbo Pascal, du Basic, et des fichiers Bat, certes tes connaissances ont 15 à 20 ans d'âge, mais au moins tu sais faire un peu plus que cliquer sur des icônes.
Dans un premier temps, essaie de te familliariser avec Unix, d'une manière générale. Sa ligne de commande est extrêmement puissante, et te permet la plupart du temps d'arriver à faire ce qui t'aurait nécessité l'écriture d'un programme dans un environnement Microsoft.
Trouve-toi déjà un tutoriel Unix qui te convienne :
http://www.google.fr/search?hl=fr&q=Tutoriel+UNIX&bt(...)
Commence par t'entraîner avec le Shell pour être efficace.
---
Ensuite, si tu veux débuter en C++, pas de problème, mais connais-tu déjà le C au moins ? Si ce n'est pas le cas, la plupart des gens te conseillera de commencer d'abord par cela.
Essaie d'explorer gcc et g++ d'un coté, et de lire le cours de Casteyde de l'autre (le meilleur à mon goût) :
http://casteyde.christian.free.fr/cpp/cours/online/book1.htm(...)
[^] # Re: Euh
Posté par Obsidian . En réponse au message Le break dans le fork(). Évalué à 2.
La déclaration d'un int dans l'entête de la boucle, oui, est interdit par le C99 (et tant mieux parce que c'est sale). Par contre rien ne t'empêche de créer une locale dans le corps de la boucle, entre les accolades ...