Zerosquare (./3383) :
Donc c'est pas portable, CQFD.
Bof de toute façon le C c'est pas portable. CQFD
avatar
Pen² > Certes, mais dans ce cas tu ne peux même pas ouvrir de fichier, donc...

Je pense que ça n'aurait pas trop été demander que s'il y a un système de fichiers, on puisse déterminer la taille d'un fichier ouvert sans devoir faire appel à des fonctions hors libc.

(et d'après la page, le problème ne se pose pas seulement pour les flux, mais aussi pour les fichiers ordinaires - c'est juste que ça marche sur les OS les plus courants, mais ça n'est pas garanti)

Uther > Ah mais ça a toujours été mon argument : la portabilité du C, c'est de l'esbrouffe. Je sais que beaucoup de gens ne sont pas d'accord, mais c'est mon point de vue smile
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo
(le java ça roxe, par contre embarrassed)
Disons que la portabilité c'est toujours plus ou moins de l'esbroufe, mais y'a des fois ou ça se voit plus que d'autre. Le C a hérité sa réputation de langage portable de l'époque où la principale concurrence dans son domaine était l'assembleur. Donc en effet il y avait pas photo.

Mais si on le compare a la plupart des langages moderne, il est clairement derrière.
avatar
Godzil (./3381) :
Ce n'est pas fstat mais _fstat sous windows ( https://msdn.microsoft.com/en-us/library/aa246905(v=vs.60).aspx )
MinGW comprend aussi fstat sans _. tongue
avatarMes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
Godzil (./3385) :
Mais vous faites tous erreur, vous confondez stat et fstat:

int stat(const char *pathname, struct stat *statbuf);
int fstat(int fd, struct stat *statbuf);
Tu as raison. C'est stat qu'il faut utiliser, pas fstat. Mais stat aussi existe aussi sous Windows (du moins MinGW, Visual C++ oblige probablement là aussi à rajouter le fameux underscore).
avatarMes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
Uther (./3393) :
Disons que la portabilité c'est toujours plus ou moins de l'esbroufe, mais y'a des fois ou ça se voit plus que d'autre. Le C a hérité sa réputation de portabilité de l'époque ou son principale concurrence dans son domaine était l'assembleur. Donc en effet il y avait pas photo.
Mais c'est clair que si on le compare aux nombreux langages moderne, il est clairement derrière.
Le C est très portable grâce à la norme POSIX. Il reste un seul système d'exploitation courant qui n'est toujours pas conforme.
avatarMes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
Oui sauf que POSIX, c'est pas un langage mais une base d'OS. Il peut tout aussi bien fonctionner avec un autre langage avec une ABI compatible.
Rien que le langage C en lui même pose des problèmes de portabilité avant même d'en arriver à ce niveau.
avatar
pencil

Et Kevin parle de Windows sans le nommer, mais il y a plein d'autres plateformes que les PC desktop qui utilisent du C.
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo
Pen^2: Non le C a ete fait et inventé pour UNIX et c'est un OS a base de fichier. donc non ca ne marche pas.
Zero: il y a des machins embarqué qui sans avoir de vrai FS simulent un FS pour acceder au données
Kevin: no comment, MinGW n'est PAS un compilateur 100% natif.
avatarProud to be CAKE©®™
The cake is a lie! - Love your weighted companion cube

->986-Studio's Wonder Project!<-
[color=DAA5
Zerosquare (./3398) :
Et Kevin parle de Windows sans le nommer, mais il y a plein d'autres plateformes que les PC desktop qui utilisent du C.
TIGCC n'est pas vraiment une plateforme courante. grin

Même Android (libc Bionic) est presque conforme à POSIX.
avatarMes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
Android natif est suffisamment posix pour pas faire chier avec du code normal quotidien.
C'est bien ce que je dis. Je ne vois pas quelle plateforme courante à part Windows n'est pas POSIX.
avatarMes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
Courante pour qui ? Pour toi ?

Sais-tu seulement combien d'objets que tu utilises (directement ou indirectement) dans ta vie quotidienne exécutent du code écrit en C ? Je pense que tu serais surpris.
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo
Normalement oui, parce qu'ils sont tous libres embarrassed
Parlons de plateformes embarquées courantes alors:
Linux+ucLibc: POSIX
Linux+musl: POSIX
VxWorks: POSIX
RTEMS: POSIX

Et quand je parle de "plateforme courante", je parle en parts de marché évidemment.

Certes, tu peux avoir des solutions embarquées totalement custom qui n'ont même pas de système de fichiers, avec un compilateur C freestanding (niveau de conformité qui exclut la plupart de la libc), et c'est peut-être courant en totalité (même si ces solutions sont toutes différentes), mais dans ce cas, le problème de fseek ne se pose carrément pas.

Et sinon, je signale aussi que la DLL Cygwin est sous LGPL (avec une exception permettant le linkage statique des parties qui sont forcément statiques sans l'obligation de fournir de quoi relinker avec une version modifiée de ces parties que la LGPL comporterait sinon) depuis 2016, donc on peut aussi faire du POSIX pour Windows sans problèmes de licence de nos jours. Franchement, le C non-POSIX est quasiment obsolète, hors plateformes de niche (comme TIGCC) qui n'implémentent habituellement même pas l'intégralité de la libc standard.
avatarMes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
Oui c’est bien le problème, tout ne tourne pas autour du monde PC et de Linux.
avatarProud to be CAKE©®™
The cake is a lie! - Love your weighted companion cube

->986-Studio's Wonder Project!<-
[color=DAA5
Godzil (./3406) :
Oui c’est bien le problème, tout ne tourne pas autour du monde PC et de Linux.

Kevin Kofler (./3405) :
Parlons de plateformes embarquées courantes alors:
Linux+ucLibc: POSIX
Linux+musl: POSIX
VxWorks: POSIX
RTEMS: POSIX
roll
avatarMes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
Voilà. Les plateformes pour lesquelles le concept de portabilité du code a un sens sont toutes POSIX de nos jours (à part Windows où on a toujours besoin de solutions tierces comme Cygwin, l'émulation GNU/Linux de Windows 10 n'étant toujours pas installée par défaut).
avatarMes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
https://github.com/npm/npm/issues/19883 :
This issue has been happening ever since 5.7.0 was released a few hours ago. It seems to have completely broken my filesystem permissions and caused me to have to manually fix the permissions of critical files and folders. I believe that it is related to the commit 94227e1 which is traversing and running chown on the wrong, often critical, filesystem files and folders.

By running sudo npm under a non-root user (root users do not have the same effect), filesystem permissions are being heavily modified. For example, if I run sudo npm --help or sudo npm update -g, both commands cause my filesystem to change ownership of directories such as /etc, /usr, /boot, and other directories needed for running the system. It appears that the ownership is recursively changed to the user currently running npm.
This isn't a bug, this is all working exactly as written and intended. There's a correctMkdir function that explicitly uses the sudo caller (not the effective or real user ID) to recursively chown any directory it is called to, and then this function is used all over the place, notably in places like the installation etc directory.

Apparently the npm developers feel they can do whatever they want with your system. Seriously, this isn't a subtle bug, this is code doing exactly what it claims to do. Which is stupid and clearly nobody tested this on a real system.
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo
Epic Fail
avatarWebmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca
Wonderful!
avatarProud to be CAKE©®™
The cake is a lie! - Love your weighted companion cube

->986-Studio's Wonder Project!<-
[color=DAA5
Impressionnant x_x
avatar
Ça donne envie love
avatar<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant
#tricouic#
C'est effrayant. Les deux développeurs principaux de npm (zkat et iarna) ont l'air d'être des complets amateurs, ne comprennent pas la moitié des bugs signalés sur npm et envoient des changement inconscients de façon régulière (sans le moindre test évidemment). Avec la popularité qu'a gagné ce projet (d'ailleurs je me demande bien comment vu la qualité de l'engin) c'est vraiment dangereux d'avoir des gens aussi inexpérimentés aux commandes.

D'ailleurs Facebook a fait un blog post assez intéressant quand ils ont lancé Yarn (un concurrent de npm) : ils listent les problèmes qu'ils ont rencontré avec npm et pourquoi il leur semblait impossible de les corriger, de façon très politiquement correcte mais on sent que la qualité du code et le talent des mainteneurs y est pour beaucoup.
avatarAll right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)
Tu peux pas test!!!

npm fait de joli dessins, utilise plein de caractères unicodes pour s'afficher, de la couleur, et plein d'autres jolis trucs!

Sous windows:
M7pB

(le bloc blanc a coté de la brande barre tourne sur lui meme, sur mac il utilise des caracters unicodes venant du braille pour faire la meme chose c'est encore plus joli!)


Par contre dire que le logiciel que tu fait est incompatible avec telle ou telle version de node, et qu'il ne faut pas l'installer dessus? non ya pas. (et mon truc est VRAIMENT incompatible avec des version antérieures de node, ca fait planter ma bouse, ce n'est pas juste pour faire joli que je veux faire ca)

Plus plein de trucs qui marche et sont déprécié la version suivante, et remplacé par un truc foireux. Pourquoi vous croyez que je veux reecrire ce *** de projet en typescript que j'ai me suis foutut sur les main en python? ce n'est pas que pour le javascript, c'est aussi pour cette merde...
avatarProud to be CAKE©®™
The cake is a lie! - Love your weighted companion cube

->986-Studio's Wonder Project!<-
[color=DAA5
Zeph: t'as des sources? Ca m'intéresse d'avoir des détails sur ca, genre, si jamais on me propose d'utiliser node pour un futur projet ici... ca fera massue.
Là c'est pas node directement, mais npm.