OVH Cloud OVH Cloud

Concatenation de chaine de caractere

54 réponses
Avatar
Pascal
Comment concatener plusieur chaine de caractere, un nombre assez
important? je connais strcat, mais c'est pas tres pratique des que l'on
doit concatener plus de deux chaines... En gros je cherche un equivalent
a ce que l'on trouve sur java ou c++, un truc simple du style
"char1"+"char2"+char3" -> "char1char2char3".
--
Pascal

10 réponses

1 2 3 4 5
Avatar
kilobug

Juste un doigt de proselytisme. Il existe une licence libre (BSD) qui
se fonde sur des ideaux philosophiques differents de ceux de la GPL.


Oui, des idéaux de jemenfoutisme, de "oh bah qu'ils reprennent mon
code pour accroitre leur puissance commerciale afin de mieux
vérouiller l'informatique dans les brevets et du TCPA", très peu pour
moi, merci. Je ne comprends pas comment des auteurs de logiciel libre
peuvent trouver normal de laisser leur code se faire piller par des
gens qui déclarent officilement que le logiciel libre est un ennemi à
abattre.



Je pense qui si qu'un auteur de projet BSD sera content de se piller
lui-même plutôt que de ne pas pouvoir vendre son logiciel à cause de la
licence BSD.


Là je ne vois pas le rapport, tu peux parfaitement avoir une double
license si c'est ça la question (Mozilla, OOo, MySQL, ...)

sendmail.com a l'air de très bien y arriver.


De plus, la nature virale de la licence GPL pose aussi probleme: si
on commence a developper en integrant des bouts de code GPL, on place
d'office le developpement sous licence GPL... et on se coupe de certaines
personnes, qui auront un a priori tres negatif vis-a-vis de la GPL, et
de certaines possibilites de faire evoluer son code, vers certaines
pratiques commerciales par exemple.




ça me rappelle l'histoire d'un projet qui voulait passer de GPL en BSD
je crois ou quelque chose du genre (pour pouvoir le vendre) et tous les
co-auteurs devant donner leur accord, je crois qu'il y en a certains qui
ont bloqué. L'auteur initial devait être super content.


Et ça me rappelle aussi l'histoire d'un projet (wine) qui a été pillé
par des sociétés qui ont sorti leur version de wine avec quelques
ajouts, en le vendant, et en refusant de redonner leurs améliorations
à la communauté selon qui ils n'auraient rien pu faire... et le projet
est sous license LGPL depuis.

Sinon, à propos de la LGPL, n'est-elle pas boycottée cette licence
LGPL ? (par les GNUs)


Non, c'est la license utilisée par la libc, la GLib, Gtk+ (qui sont
des projets GNU); ce que la FSF dit c'est "toutes les libs ne doivent
pas forcément être en LGPL, pour certaines la GPL est au moins tout
aussi appropriée", pas "n'utilisez pas la LGPL".

Moi, je prefere que ca soit un choix assume, que la personne qui utilise
du code GPL sache bien dans quel engrenage elle met son doigt.
Il n'y a, helas ou heureusement, pas que le critere technique de la
qualite du code concerne a considerer.




Ce qui me paraît louche dans la GPL, c'est le :


<<
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.





bref, le "later version".


C'est pas dans la GPL ça, c'est dans l'utilisation communément faite
de la GPL. Si tu regardes Linux, c'est version 2 uniquement.

D'autre part, le "at your option" concerne le choix de l'utilisateur,
donc le seul "risque" c'est une GPL v3 qui soit plus permissive (dans
le sens de la BSD) et dans ce cas le programme pourrait être utilisé
avec la version permissive.

Tiens, ca sent tres fort le Hurd, ca, comme habitude.


Oui, GNU/Hurd n'a pas de limites, par conception même, toute forme de
limites en est banni. Rendre la liberté aux utilisateurs, c'est aussi
éviter que l'utilisateur ne subisse des limites codées en dur dans les
applications, ni des limites techniques, comme l'impossibilité de
"monter" une image ISO sans être root, ou



le fait de devoir se
reloguer pour être rajouer à un groupe.



Depuis quand est-ce que ce problème est lié au fait que le noyau soit
micro-noyau ou pas.



Ce problème existe-t-il ailleurs que sous linux ?


À ma connaissance sous tous les Unix-like. En effet, ça ne demande pas
forcément un micro-noyau, mais c'est beaucoup plus puissant avec (avec
un serveur d'authentification).

Note :
Attention, ça va virer au débat politique.


<maternelle>C'est pas moi qui a commencé, m'dame</maternelle>

--
Gael Le Mignot "Kilobug" - - http://kilobug.free.fr
GSM : 06.71.47.18.22 (in France) ICQ UIN : 7299959
Fingerprint : 1F2C 9804 7505 79DF 95E6 7323 B66B F67B 7103 C5DA

Member of HurdFr: http://hurdfr.org - The GNU Hurd: http://hurd.gnu.org



Avatar
kilobug

Oui, des idéaux de jemenfoutisme, de "oh bah qu'ils reprennent mon
code pour accroitre leur puissance commerciale afin de mieux
vérouiller l'informatique dans les brevets et du TCPA", très peu pour
moi, merci. Je ne comprends pas comment des auteurs de logiciel libre
peuvent trouver normal de laisser leur code se faire piller par des
gens qui déclarent officilement que le logiciel libre est un ennemi à
abattre.



C'est pas parce que tu ne comprends rien a la motivation qui poussent
les gens a developper du logiciel BSD que tu es oblige de raconter
n'importe quoi jusqu'a la caricature.


C'est pourtant quelque chose de concret. Microsoft vend du code BSD,
et utilise l'argent gagné ainsi afin de défendre les brevets logiciels
et TCPA.

[...]
Non, en effet, il faut aussi un peu se préoccuper de problèmes
éthiques et défendre la liberté de son code.



Et, a ton avis, tu penses que c'est une demarche que nous n'avons pas ?
Nous sommes juste parvenus a d'autre conclusions que toi sur la marche
a suivre.


Non, la license BSD ne défend rien justement.

strlcpy et strlcat sûres ? mwarf, elles n'apportent quasiment rien de
plus que des strncpy et strncat, désolé, chez GNU on préfère éviter
les buffers statiques plutôt que de rajouter des fonctions pour les
gérer de manière un peu moins non-sûre.



Ca indique clairement que tu ne sais pas t'en servir, ou que tu as
trop suivi la propagande Ulrich Drepper...


Non, un buffer dans la pile présente un danger, car nul n'est à
l'abris d'une erreur. Et un buffer de taille fixe est général une
limitation que l'utilisateur final subira.

On a strndup, asprintf, ... plutôt.



Que reproches-tu à ces fonctions là ?

Enfin, comme toujours, chez BSD on préfère rajouter des ristounes
plutôt que de revoir la conception. On préfère faire des jails et
coder des "privilege separation" au niveau des applis, plutôt que
d'avoir une infrastructure qui permet de gagner et perdre
dynamiquement des jetons de sécurité, de faire tourner réellement
plusieurs piles TCP/IP n'ayant pas de privilèges... Moi je préfère
concevoir les choses proprement plutôt que de faire des bidouilles.



C'est une possibilite. Au fait, une version de Hurd qui serve a quelque
chose, c'est pour quand ?


Et la marmotte ?

Si tu n'es pas capable de réfléchir aux possibilités d'un design, et
de comprendre qu'un projet complexe, sur lequel peu de gens
contribuent, et qui a été suspendu pendant des années mettent un peu
de temps à se finaliser (surtout avec la révolution qu'il y a eu dans
le domaine des micro-noyaux entre le début du Hurd et le moment où le
projet a été relancé, j'entends par là ls µk de seconde génération
type L4)

En attendant, les rustines a la strlcpy/strlcat/snprintf ont evite plus
de trous que tout le code de Hurd reuni.


Et combien de personne sur chaque projet ? Pendant combien de temps ?

Accessoirement, le concept de privilege separation n'est absolument
pas une rustine, mais une technique raisonnable de
conception. C'est un peu complexe (voire tres dur) a retroffitter
sur du logiciel existant, mais ca marche tres bien en pratique.


Non, c'est une rustine immonde dans un Unix-like.

Sous GNU/Hurd, au cas tu ne le serais pas, il n'y a pas besoin de
méchanisme complexe et risqué comme celui-là, parce qu'on a une
architecture de sécurité qui permet à un programme de perdre et gagner
des jetons d'authentification en cours d'excéution. Donc un sshd (ou
ftpd, ou ceketuveux) peut tourner en "noauth" (aucun privilège, pas
même 'nobody'), et lorsqu'on lui donne un couple (login/pass),
l'échanger au près du serveur mot de passe contre un jeton "uid" et
des jetons "gid". Ainsi, rien, pas une ligne du code du sshd (ou ftpd
ou autre) ne s'exécute en root, et aucune ligne n'a le moindre droit
si on ne peut pas lui donner un couple login/pass. Et ça, ça demande
peu de modifications sur un programme quelconque, et ça fonctionne
depuis quelques années (bien avant que OpenSSH ne supporte la
séparation de privilège).

De la même manière, un programme style ghostscript peut jeter tous ses
jetons (et donc n'avoir plus aucun droit) après avoir ouvert le
fichier à traiter, afin d'éviter qu'un trou dans l'interpréteur ne
puisse être exploité par un .ps malicieux (si gs n'a aucun droit, il
ne peut rien faire qui touche au système, à part sur les
fichiers/sockets/... qu'il avait déjà ouvertes avant de jeter ses
jetons)

Il est juste possible, la-encore, qu'on ait fait d'autres choix de
conception. Peut-etre que tout reecrire de fond en comble serait une
meilleure idee


Adapter un sshd ou un ftpd à l'architecture du Hurd demande moins de
travail, et offre plus de sécurité, que d'implémenter de la
"séparation de privilèges". Le différent est donc bien celui que je
disais au départ: GNU a choisi une architecture puissante et bien
conçue au coeur du système, BSD préfère ajouter des bidouilles dans
les couches du dessus.

(encore que je me souviens d'un trou dans la gestion des
capabilities sous linux qui avait bien jaser dans les chaumieres),


Depuis quand Linux c'est un projet GNU ?

mais il n'empeche pas qu'on a des petites avancees constantes qui finissent
par faire de grandes choses.


Rajouter des filets avec des trous de plus en plus petits plutôt que
de changer la coque trouée, ça a jamais rendu un bateau étanche.

Si tu regardes du cote de gcc, par exemple, tu y verras pas mal de code
de verifications supplementaires qui ont ete ecrites par des gens de BSD.


Je ne dis pas que tout ce que font les gens de BSD est mal, je dis que
l'approche BSD aux problèmes de manière générale est mauvaise (trop
superficielle, trop "on reserre les mailles du filet" et pas assez en
profondeur sur les problèmes eux-mêmes). Au niveau code pur, il y a de
très bons programmeurs dans les deux "mondes".

Mais bon, continue a faire du Hurd, hein...


Tu connais l'architecture du Hurd, avant d'en parler, au moins ?

--
Gael Le Mignot "Kilobug" - - http://kilobug.free.fr
GSM : 06.71.47.18.22 (in France) ICQ UIN : 7299959
Fingerprint : 1F2C 9804 7505 79DF 95E6 7323 B66B F67B 7103 C5DA

Member of HurdFr: http://hurdfr.org - The GNU Hurd: http://hurd.gnu.org


Avatar
espie
In article ,
Gaël Le Mignot wrote:
Non, un buffer dans la pile présente un danger, car nul n'est à
l'abris d'une erreur. Et un buffer de taille fixe est général une
limitation que l'utilisateur final subira.


Par opposition a un tampon ailleurs qui ne constitue pas un danger ?
Les tampons dans la pile comme les tampons dans le tas, en cas de
debordement, se transforment facilement en trou de securite.

Les techniques d'exploitation ne sont pas exactement les memes, c'est
legerement plus facile d'utiliser un trou sur la pile, mais les pirates
ne vont pas t'attendre pour se mettre a la page! C'est pas un hasard
si on constate qu'un grand nombre de trous recents se font directement
dans le tas, sans passer par la pile.

Avatar
espie
In article ,
Gaël Le Mignot wrote:
Si tu n'es pas capable de réfléchir aux possibilités d'un design, et
de comprendre qu'un projet complexe, sur lequel peu de gens
contribuent, et qui a été suspendu pendant des années mettent un peu
de temps à se finaliser (surtout avec la révolution qu'il y a eu dans
le domaine des micro-noyaux entre le début du Hurd et le moment où le
projet a été relancé, j'entends par là ls µk de seconde génération
type L4)


Deux choses:
- je ne pense pas que tu connais bien la taille d'OpenBSD, au niveau
equipe developpement. Ca n'est pas si gros que ca.
- ce que tu me decris, c'est le syndrome GNU que j'ai vecu pendant
des annees sur d'autres projets. Entre le `ben oui, ca n'avance plus, le
projet est gele, on sortira une nouvelle version quand quelqu'un s'y
interessera, votre patch, vous pouvez l'utiliser en suppositoire en
attendant' et le `ah mais, la prochaine version qui va sortir incessamment
sous peu corrige tous les problemes que vous voyez dans la derniere
version stable', j'ai une impression on ne peut plus nette de deja-vu.
J'appelerai bien ca le mirage GNU, tiens. Toujours courir apres les
dernieres nouveautes est une assez bonne facon de s'assurer qu'on ne
sortira jamais rien de concret.

A la decharge de GNU, ils arrivent quand meme a sortir des trucs de
facon plus ou moin sporadiques, dont certains logiciels tres bien concus.

Bon, et puis c'est encore du HS, et j'ai deja dit que j'allais arreter la.

Avatar
kilobug

In article ,
Gaël Le Mignot wrote:
Non, un buffer dans la pile présente un danger, car nul n'est à
l'abris d'une erreur. Et un buffer de taille fixe est général une
limitation que l'utilisateur final subira.



Par opposition a un tampon ailleurs qui ne constitue pas un danger ?


Un danger plus réduit.

Les tampons dans la pile comme les tampons dans le tas, en cas de
debordement, se transforment facilement en trou de securite.


Oui, et qui en général ne marchent pas à tous les coups, et sont plus
difficiles à faire... donc on y gagne un peu en évitant la pile. Et on
limite aussi le risque d'erreurs avec de l'allocation dynamique, et on
n'impose aucune limite.

--
Gael Le Mignot "Kilobug" - - http://kilobug.free.fr
GSM : 06.71.47.18.22 (in France) ICQ UIN : 7299959
Fingerprint : 1F2C 9804 7505 79DF 95E6 7323 B66B F67B 7103 C5DA

Member of HurdFr: http://hurdfr.org - The GNU Hurd: http://hurd.gnu.org


Avatar
Gabriel Dos Reis
(Gaël Le Mignot) writes:

|
| > In article ,
| > Gaël Le Mignot wrote:
| >> Non, un buffer dans la pile présente un danger, car nul n'est à
| >> l'abris d'une erreur. Et un buffer de taille fixe est général une
| >> limitation que l'utilisateur final subira.
|
| > Par opposition a un tampon ailleurs qui ne constitue pas un danger ?
|
| Un danger plus réduit.

Dans quel sens ?

-- Gaby
Avatar
kilobug

In article ,
Gaël Le Mignot wrote:
Si tu n'es pas capable de réfléchir aux possibilités d'un design, et
de comprendre qu'un projet complexe, sur lequel peu de gens
contribuent, et qui a été suspendu pendant des années mettent un peu
de temps à se finaliser (surtout avec la révolution qu'il y a eu dans
le domaine des micro-noyaux entre le début du Hurd et le moment où le
projet a été relancé, j'entends par là ls µk de seconde génération
type L4)



Deux choses:
- je ne pense pas que tu connais bien la taille d'OpenBSD, au niveau
equipe developpement. Ca n'est pas si gros que ca.


Mais ils sont partis d'un OS déjà fonctionnel, et ils utilisent aussi
des améliorations faites sur les autres BSD libres, ...

- ce que tu me decris, c'est le syndrome GNU que j'ai vecu pendant
des annees sur d'autres projets. Entre le `ben oui, ca n'avance plus, le
projet est gele,


Dans le cas du Hurd, le projet a été gelé jusqu'en 1997-1998, mais a
beaucoup évolué ces deux dernières années (pour info, on a environ la
moitié de la woody qui fonctionne dessus, y compris X)

J'appelerai bien ca le mirage GNU, tiens. Toujours courir apres les
dernieres nouveautes est une assez bonne facon de s'assurer qu'on ne
sortira jamais rien de concret.


Emacs, gcc, gdb, des fileutils et coreutils très complets, bison,
flex, info, The Gimp, Gnome, une libc, ... c'est sûr que GNU ne sort
que peu de choses concrètes.

--
Gael Le Mignot "Kilobug" - - http://kilobug.free.fr
GSM : 06.71.47.18.22 (in France) ICQ UIN : 7299959
Fingerprint : 1F2C 9804 7505 79DF 95E6 7323 B66B F67B 7103 C5DA

Member of HurdFr: http://hurdfr.org - The GNU Hurd: http://hurd.gnu.org


Avatar
Gabriel Dos Reis
(Gaël Le Mignot) writes:

|
| > In article ,
| > Gaël Le Mignot wrote:
| >> Si tu n'es pas capable de réfléchir aux possibilités d'un design, et
| >> de comprendre qu'un projet complexe, sur lequel peu de gens
| >> contribuent, et qui a été suspendu pendant des années mettent un peu
| >> de temps à se finaliser (surtout avec la révolution qu'il y a eu dans
| >> le domaine des micro-noyaux entre le début du Hurd et le moment où le
| >> projet a été relancé, j'entends par là ls µk de seconde génération
| >> type L4)
|
| > Deux choses:
| > - je ne pense pas que tu connais bien la taille d'OpenBSD, au niveau
| > equipe developpement. Ca n'est pas si gros que ca.
|
| Mais ils sont partis d'un OS déjà fonctionnel, et ils utilisent aussi
| des améliorations faites sur les autres BSD libres, ...

et tu crois que Marc travaille sur ...?

[...]

| > J'appelerai bien ca le mirage GNU, tiens. Toujours courir apres les
| > dernieres nouveautes est une assez bonne facon de s'assurer qu'on ne
| > sortira jamais rien de concret.
|
| Emacs, gcc, gdb, des fileutils et coreutils très complets, bison,
| flex, info, The Gimp, Gnome, une libc, ... c'est sûr que GNU ne sort
| que peu de choses concrètes.

et tu crois que Marc n'a contribué à aucun de ses produits ?

-- Gaby, amusé
Avatar
espie
In article ,
Gabriel Dos Reis wrote:
| Emacs, gcc, gdb, des fileutils et coreutils très complets, bison,
| flex, info, The Gimp, Gnome, une libc, ... c'est sûr que GNU ne sort
| que peu de choses concrètes.

et tu crois que Marc n'a contribué à aucun de ses produits ?


Je revendique haut et fort le fait de ne rien avoir jamais ecrit dans
emacs. J'avoue n'avoir jamais rien ecrit dans fileutils. Je ne
crois pas avoir rien fait non plus dans flex, ni dans The gimp, ni dans
gnome...

--
Marc ;-)

Avatar
kilobug
| > J'appelerai bien ca le mirage GNU, tiens. Toujours courir apres les
| > dernieres nouveautes est une assez bonne facon de s'assurer qu'on ne
| > sortira jamais rien de concret.
|
| Emacs, gcc, gdb, des fileutils et coreutils très complets, bison,
| flex, info, The Gimp, Gnome, une libc, ... c'est sûr que GNU ne sort
| que peu de choses concrètes.


et tu crois que Marc n'a contribué à aucun de ses produits ?


Et ? Je ne vois pas le rapport. Marc accuse GNU d'être une agence de
vaporwares, alors que le projet GNU est tout de même l'un de ceux qui
ont apporté le plus au monde du libre (et bon nombre d'outils GNU sont
utilisés aussi sur les BSD d'ailleurs (gcc, gdb, emacs, the gimp,
...))

--
Gael Le Mignot "Kilobug" - - http://kilobug.free.fr
GSM : 06.71.47.18.22 (in France) ICQ UIN : 7299959
Fingerprint : 1F2C 9804 7505 79DF 95E6 7323 B66B F67B 7103 C5DA

Member of HurdFr: http://hurdfr.org - The GNU Hurd: http://hurd.gnu.org

1 2 3 4 5