Tiens, d'ailleurs, après vérif, ceci semble confirmer ce que je pense :
(cur) (last) 15:43, 22 September 2007 Carpetsmoker (Talk | contribs) m (2,523 bytes) (Change 'substitute user' to 'substitute user or switch user') (undo)
La version anglaise de wikipédia accepte de donner les deux versions, pour arrondir les angles (probablement quelqu'un qui en était intimement persuadé, aussi) :
« Substitute user », en plus d'être plus joli, correspond plus à la réalité, tant d'un point de vue sémantique (« se substituer à quelqu'un ») que technique, car su sert à lancer un programme sous l'identité de quelqu'un, mais pas à changer celle des autres programmes en fonctionnement. Et même dans ce cas, switch (commuter) ne serait pas le terme le plus approprié. Je pense que switch user est une définition « devinée » la plupart du temps. Il se peut aussi qu'il s'agisse de ce switch là : http://en.wikipedia.org/wiki/Switch_(film)
Comme dit plus bas, c'est parce que tes timestamps ont un nombre de chiffres fixe. Du coup le tri numérique n'a aucun intérêt. À mon avis, tu peux purement et simplement virer ces options, cela fera encore gagner du temps à tes tris.
(On ne peut pas éditer ses commentaires, dommage).
Je viens de dire une connerie (le -m servant justement à ça). Une fois tous tes fichiers triés un par un, tu fais un gros sort -m *. Ça fait cent fichiers ouverts mais la progression sera linéaire et ne consomera pas plus de mémoire que nécessaire.
Il existe l'option -m (merge) pour fusionner des fichiers déjà triés. Si tu veux limiter l'impact en mémoire tout en suivant ta progression, tu peux donc commencer par trier tous tes logs un par un, puis fusionner chaque log trié avec un fichier global de résultat.
Bilan, 200 opérations dont chacune sera plus lente que la précédente en ce qui concerne les 100 dernières (la fusion avec le fichier final), mais maîtrise complète et possibilité de trier/fusionner plus de 2 fichiers à la fois si tu as de la mémoire, pour accélérer les choses.
Pour le point décimal, je ne connais pas de solution miracle mais puisque tu vas automatiser le tout avec un script et comme toutes tes lignes commencent par un timestamp dont le format est connu et constant, tu peux peut-être le faire disparaître avec une expression régulière dans tous tes fichiers, et le remettre à sa place de la même façon dans le fichier final (mais il faut des gigas disponibles).
D'ailleurs, ça vaudrait le coup de mettre ça au clair parce que non seulement il n'y a plus rien qui l'indique quand on poste désormais dans les forums mais, en plus, le forum « Astuces » est celui qui est sélectionné par défaut lorsque l'on s'apprête à écrire.
Je rappelle que l'idée était de renvoyer un pointeur pour rester compatible avec printf(), soit mettre la chaîne ainsi formée en argument, et éviter de passer par plusieurs appels successifs.
C'est vrai que ça manque ! En BASIC 128, il y avait STRING$ pour cela, et la classe éponyme de la bibliothèque standard du C++ permet de le faire aussi. Cependant, étant donné que ta série de caractère est une chaîne et si tu veux l'utiliser dans un printf(), le mieux est encore de réécrire la fonction soi-même. Et effectivement, il faudra gérer la mémoire soi-même.
buffer = (char *) malloc(l);
if (buffer)
{
buffer [--l]='\0';
while (l) buffer [--l]=c;
}
return (const char *)buffer;
}
Alors, oui, c'est de l'allocation dynamique, mais au moins on ne garde en mémoire que la dernière chaîne générée, et c'est compatible avec printf(). Tu peux faire un chrstr('x',0); si tu veux libérer le maximum de mémoire, et tu peux même te permettre de faire un free() sur le pointeur si tu es sûr de ne plus jamais rappeler la fonction derrière ...
C'est déjà arrivé. Je ne retrouve plus le lien, malheureusement, donc je ne peux plus me la péter, mais il y avait déjà eu un dégazage massif naturel du fond d'un lac qui avait causé la mort d'un grand nombre de personnes aux alentours.
Côté méthane, s'il y a d'énormes poches qui menacent de s'échapper, ça vaudrait le coup de se mettre à les exploiter massivement également. Au moins, si on les brûle, on libèrera de l'eau et du CO2. Ce serait un moindre mal.
Enfin ce n'est pas trop grave car bientôt Chrome sera utilisable partout et sa conception me parait bien plus raisonnable.
D'ailleurs, Chrome, à en lire la BD, c'est un peu l'OS-inside-a-browser. J'ai parcouru l'explication rapidement, mais il me semble que bon nombre de fonctionnalités vont faire double-emploi avec ce qui devrait être géré par le système ...
[^] # Re: Aaah ! STRING$
Posté par Obsidian . En réponse au message Comment répeter un caractère avec printf. Évalué à 2.
Heureux ?
[^] # Re: /etc/passwd
Posté par Obsidian . En réponse au message probleme de mot de passe. Évalué à 4.
(cur) (last) 15:43, 22 September 2007 Carpetsmoker (Talk | contribs) m (2,523 bytes) (Change 'substitute user' to 'substitute user or switch user') (undo)
http://en.wikipedia.org/w/index.php?title=Su_(Unix)&acti(...)
[^] # Re: /etc/passwd
Posté par Obsidian . En réponse au message probleme de mot de passe. Évalué à 4.
http://www.google.fr/search?hl=fr&q="Substitute+Use(...)
http://www.mkssoftware.com/docs/man1/su.1.asp
La version anglaise de wikipédia accepte de donner les deux versions, pour arrondir les angles (probablement quelqu'un qui en était intimement persuadé, aussi) :
http://en.wikipedia.org/wiki/Su_(Unix)
« Substitute user », en plus d'être plus joli, correspond plus à la réalité, tant d'un point de vue sémantique (« se substituer à quelqu'un ») que technique, car su sert à lancer un programme sous l'identité de quelqu'un, mais pas à changer celle des autres programmes en fonctionnement. Et même dans ce cas, switch (commuter) ne serait pas le terme le plus approprié. Je pense que switch user est une définition « devinée » la plupart du temps. Il se peut aussi qu'il s'agisse de ce switch là : http://en.wikipedia.org/wiki/Switch_(film)
[^] # Re: Alors, à vue de nez
Posté par Obsidian . En réponse au message merger des fichiers de logs. Évalué à 3.
[^] # Re: Alors, à vue de nez
Posté par Obsidian . En réponse au message merger des fichiers de logs. Évalué à 2.
Bon courage.
[^] # Re: Alors, à vue de nez
Posté par Obsidian . En réponse au message merger des fichiers de logs. Évalué à 3.
Je viens de dire une connerie (le -m servant justement à ça). Une fois tous tes fichiers triés un par un, tu fais un gros sort -m *. Ça fait cent fichiers ouverts mais la progression sera linéaire et ne consomera pas plus de mémoire que nécessaire.
# Alors, à vue de nez
Posté par Obsidian . En réponse au message merger des fichiers de logs. Évalué à 2.
Bilan, 200 opérations dont chacune sera plus lente que la précédente en ce qui concerne les 100 dernières (la fusion avec le fichier final), mais maîtrise complète et possibilité de trier/fusionner plus de 2 fichiers à la fois si tu as de la mémoire, pour accélérer les choses.
Pour le point décimal, je ne connais pas de solution miracle mais puisque tu vas automatiser le tout avec un script et comme toutes tes lignes commencent par un timestamp dont le format est connu et constant, tu peux peut-être le faire disparaître avec une expression régulière dans tous tes fichiers, et le remettre à sa place de la même façon dans le fichier final (mais il faut des gigas disponibles).
[^] # Re: /etc/passwd
Posté par Obsidian . En réponse au message probleme de mot de passe. Évalué à 3.
C'est « substitute user », en fait.
[^] # Re: Astuces ?
Posté par Obsidian . En réponse au message Cacher un fichier sous Windows (vfat) depuis Linux. Évalué à 4.
https://linuxfr.org/tracker/875.html
Je n'ai pas vu d'entrée similaire. S'il y en a, pouvez-vous les poster sur la fiche ? Merci.
[^] # Re: Astuces ?
Posté par Obsidian . En réponse au message Cacher un fichier sous Windows (vfat) depuis Linux. Évalué à 6.
# Snif !
Posté par Obsidian . En réponse au journal DDOS romantique. Évalué à 10.
[^] # Re: Intérêt ?
Posté par Obsidian . En réponse au journal Vers un OS automobile ?. Évalué à 2.
C'est même certain puisqu'il faudra toujours un gonz pour rebooter le minuteur ...
[^] # Re: Intérêt ?
Posté par Obsidian . En réponse au journal Vers un OS automobile ?. Évalué à 2.
Pas la boussole, ni le soleil seul.
[^] # Re: Intérêt ?
Posté par Obsidian . En réponse au journal Vers un OS automobile ?. Évalué à 6.
[^] # Re: Intérêt ?
Posté par Obsidian . En réponse au journal Vers un OS automobile ?. Évalué à 5.
Ça s'appelle un sextant (et une horloge H4 pour aller avec :-) http://fr.wikipedia.org/wiki/John_Harrison_(horloger) ).
[^] # Re: Aaah ! STRING$
Posté par Obsidian . En réponse au message Comment répeter un caractère avec printf. Évalué à 2.
[^] # Re: Aaah ! STRING$
Posté par Obsidian . En réponse au message Comment répeter un caractère avec printf. Évalué à 2.
Oups ! Oubli de ma part, désolé. Je l'ai écrit à l'arrache avant d'aller prendre le train ...
# Aaah ! STRING$
Posté par Obsidian . En réponse au message Comment répeter un caractère avec printf. Évalué à 2.
Voici ce que je te propose :
const char * chrstr (const char c,unsigned int l)
{
static unsigned int length = 0;
static char * buffer = NULL;
++l; // Pour le '\0' final.
if (l != length && buffer != NULL)
{
free (buffer);
buffer = NULL;
}
buffer = (char *) malloc(l);
if (buffer)
{
buffer [--l]='\0';
while (l) buffer [--l]=c;
}
return (const char *)buffer;
}
Alors, oui, c'est de l'allocation dynamique, mais au moins on ne garde en mémoire que la dernière chaîne générée, et c'est compatible avec printf(). Tu peux faire un chrstr('x',0); si tu veux libérer le maximum de mémoire, et tu peux même te permettre de faire un free() sur le pointeur si tu es sûr de ne plus jamais rappeler la fonction derrière ...
[^] # Re: Ca peut aller plus vite qu'on ne le pense !
Posté par Obsidian . En réponse au journal Environnement: la bombe à retardement du méthane est enclenchée. Évalué à 4.
[^] # Re: Ca peut aller plus vite qu'on ne le pense !
Posté par Obsidian . En réponse au journal Environnement: la bombe à retardement du méthane est enclenchée. Évalué à 10.
Côté méthane, s'il y a d'énormes poches qui menacent de s'échapper, ça vaudrait le coup de se mettre à les exploiter massivement également. Au moins, si on les brûle, on libèrera de l'eau et du CO2. Ce serait un moindre mal.
[^] # Re: 36 35
Posté par Obsidian . En réponse au journal SNCF, plus belle la vie !. Évalué à 2.
[^] # Re: Barre d'outils du site
Posté par Obsidian . En réponse au message LinuxFR et Firefox 3.0.x - 64bits -> la tortue. Évalué à 3.
D'ailleurs, Chrome, à en lire la BD, c'est un peu l'OS-inside-a-browser. J'ai parcouru l'explication rapidement, mais il me semble que bon nombre de fonctionnalités vont faire double-emploi avec ce qui devrait être géré par le système ...
[^] # Re: Chemin de fer deux point zéro
Posté par Obsidian . En réponse au journal SNCF, plus belle la vie !. Évalué à 8.
M'enfin bon. Chacun son métier.
[^] # Re: Fermez les yeux, détendez-vous...
Posté par Obsidian . En réponse au journal SNCF, plus belle la vie !. Évalué à 5.
[^] # Re: la cnil
Posté par Obsidian . En réponse à la dépêche EDVIGE : un nouveau fichier de renseignements policiers. Évalué à 10.
Parce qu'elle risquerait de se retrouver dans le fichier, pardi ! :-)