Aller au contenu

Le Linux BAR - Discussion de tout et de rien


Dark26

Messages recommandés

La deuxième je le connaissait, mais toujours aussi bon :p

Pour sid, déçut ?

Entre la crise de foie de Lorinc parce qu'il a mangé trop de galettes en plein dev, et toi... c'est parce que Windu s'est mis à bosser, et qu'il passe moins, que vous vous lâchez ? :transpi:

Modifié par Aefron
Lien vers le commentaire
Partager sur d’autres sites

Je suis allé dans les paquets trouver le "kde4" et ca l'a apparemment installé tout seul avec ce qu'il faut a coté. En espérant que ca soit bien fait mais bon ca se lance ^^

Il est juste tout en anglais là, et l'interface me parait un poil lourde (pc portable d'il y a 4-5ans) mais cay tout jolie ^^

Lien vers le commentaire
Partager sur d’autres sites

Si je peux donner un conseil : si vous voulez tester KDE (3.5 ou 4), évitez la Kubuntu !

Surtout la 8.04 qui semble pas finie, dixit les premiers échos que j'ai pu lire ici ou là (alors que c'est une LTS :oops: ) ! :transpi:

Bref, en général, il vaut mieux utiliser le bureau de prédilection de la distrib', car le travail d'intégration est toujours mieux fait. Pour Ubuntu, c'est Gnome, pour d'autres (Mandriva, SuSE...) c'est KDE.

Perso, avec le recul je ne garde pas un excellent souvenir de KDE sous Kubuntu, même la version 3.5. Ça tournait mais on sentait qu'il n'y avait pas l'effort fait pour Gnome... :non:

Lien vers le commentaire
Partager sur d’autres sites

Quelqu'un aurait la norme ANSI C sous la main?

Avec ce programme :

#include <stdio.h>
#include <unistd.h>

int main(void)
{
	fputs("Test\n", stdout);
	sleep(1);

	return 0;
}

un strace me donne :

execve("./test_stdout", ["./test_stdout"], [/* 34 vars */]) = 0
brk(0)								  = 0x804a000
access("/etc/ld.so.nohwcap", F_OK)	  = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f89000
access("/etc/ld.so.preload", R_OK)	  = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)	  = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=52007, ...}) = 0
mmap2(NULL, 52007, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f7c000
close(3)								= 0
access("/etc/ld.so.nohwcap", F_OK)	  = -1 ENOENT (No such file or directory)
open("/lib/i686/cmov/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\\\\\3\3\1\\260e\1"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1360292, ...}) = 0
mmap2(NULL, 1365616, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e2e000
mmap2(0xb7f76000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x148) = 0xb7f76000
mmap2(0xb7f79000, 9840, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f79000
close(3)								= 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7e2d000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7e2d6b0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0xb7f76000, 4096, PROT_READ)   = 0
munmap(0xb7f7c000, 52007)			   = 0
fstat64(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 1), ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f88000
#############################
write(1, "Test\n", 5Test
)				   = 5
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({1, 0}, {1, 0})			   = 0
exit_group(0)						   = ?
#############################
Process 20532 detached

donc il flush bien lorsqu'on balance '\n' dans une chaîne de caractère.

Par contre, avec celui-là :

#include <stdio.h>
#include <unistd.h>

int main(void)
{
	FILE *fp = fopen("/dev/null", "w");

	fputs("Test\n", fp);
	sleep(1);
	fclose(fp);

	return 0;
}

j'obtiens ça :

execve("./test", ["./test"], [/* 34 vars */]) = 0
brk(0)								  = 0x804a000
access("/etc/ld.so.nohwcap", F_OK)	  = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f9e000
access("/etc/ld.so.preload", R_OK)	  = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)	  = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=52007, ...}) = 0
mmap2(NULL, 52007, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f91000
close(3)								= 0
access("/etc/ld.so.nohwcap", F_OK)	  = -1 ENOENT (No such file or directory)
open("/lib/i686/cmov/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\\\\\3\3\1\\260e\1"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1360292, ...}) = 0
mmap2(NULL, 1365616, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e43000
mmap2(0xb7f8b000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x148) = 0xb7f8b000
mmap2(0xb7f8e000, 9840, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f8e000
close(3)								= 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7e42000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7e426b0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0xb7f8b000, 4096, PROT_READ)   = 0
munmap(0xb7f91000, 52007)			   = 0
brk(0)								  = 0x804a000
brk(0x806b000)						  = 0x806b000
open("/dev/null", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
fstat64(3, {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 3), ...}) = 0
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbfe03a3c) = -1 ENOTTY (Inappropriate ioctl for device)
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f9d000
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
#############################
nanosleep({1, 0}, {1, 0})			   = 0
write(3, "Test\n", 5)				   = 5
close(3)								= 0[/b]
munmap(0xb7f9d000, 4096)				= 0
exit_group(0)						   = ?
#############################
Process 20558 detached

il ne flush qu'après le sleep (au moment du close() en fait).

Donc visiblement, le comportement dépend selon que le descripteur correspond à un tty ou non.

Cela me semble étrange, et je n'ai pas la norme pour vérifier. Quelqu'un pourrait jeter un coup d'oeil?

neo

Modifié par neologix
Lien vers le commentaire
Partager sur d’autres sites

JE ne pense pas que ça ait à voir avec la norme ansi, mais plutôt avec le type de descripteur auquel tu accèdes. stdout est quand même un descripteur hyper particulier. essaye dans un premier temps en faisant un stty -icanon (qui enlève le mode canonique). Si ça marche, tu peux modifier le comportement d'un terminal directement en C avec les termios :oops:

Lien vers le commentaire
Partager sur d’autres sites

JE ne pense pas que ça ait à voir avec la norme ansi, mais plutôt avec le type de descripteur auquel tu accèdes. stdout est quand même un descripteur hyper particulier. essaye dans un premier temps en faisant un stty -icanon (qui enlève le mode canonique). Si ça marche, tu peux modifier le comportement d'un terminal directement en C avec les termios :francais:

En fait c'est setvbuf() (ANSI, les termios() sont des fcontions POSIX).

Il y a trois mode :

_IONBF unbuffered

_IOLBF line buffered

_IOFBF fully buffered

Visiblement, les fichiers sont ouverts avec _IOFBF. Je voulais savoir si c'est spécifié dans la norme.

Lien vers le commentaire
Partager sur d’autres sites

Bref, en général, il vaut mieux utiliser le bureau de prédilection de la distrib', car le travail d'intégration est toujours mieux fait. Pour Ubuntu, c'est Gnome, pour d'autres (Mandriva, SuSE...) c'est KDE.

En testant vaguement les 2, il m'a semblé que gnome était plus réactif oui, mais j'ai toutes mes habitudes sur kde, et là hors kubuntu je sais pas trop ce qui est bien et accessible, fedora petet ?

Lien vers le commentaire
Partager sur d’autres sites

Bref, en général, il vaut mieux utiliser le bureau de prédilection de la distrib', car le travail d'intégration est toujours mieux fait. Pour Ubuntu, c'est Gnome, pour d'autres (Mandriva, SuSE...) c'est KDE.

En testant vaguement les 2, il m'a semblé que gnome était plus réactif oui, mais j'ai toutes mes habitudes sur kde, et là hors kubuntu je sais pas trop ce qui est bien et accessible, fedora petet ?

Ah mais je ne poussais absolument pas à passer à Gnome (le jour où je ferai ça, coupez-moi les burnes :bravo: ) : je t'invitais plutôt à tenter (si le c½ur et le temps t'en disent) une autre distrib', une plutôt pro-KDE à la base, comme Mandriva, Suse, Fedora (me semble-t-il)... :D

Lien vers le commentaire
Partager sur d’autres sites

Fedora utilise gnome :bravo:

Il y a bien eu des version avec KDE, mais c'est plus gnome désormais :mdr:

Oki, merci pour l'info :fume:

Tiens, d'ailleurs le WE prochain je quitterai ma Mandriva 2008.1 pour basculer vers Arch avec KDE 4.1 : l'alpha 1 est sortie cette semaine :mdr2:

Et comme Arch, ça a l'air de bien déboiter du castor en rut... :fou::D

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...