De toute façon le sujet est, encore une fois, déjà torpillé.
Désolé
#include <stdio.h>
int main(){
char toto[]= "azertyuiop";
printf("toto[5]: %c\n", toto[5]);
char *tata = toto + 4;
printf("tata[1] : %c\n", tata[1]);
printf("toto = %i, tata = %i\n", toto, tata);
printf("toto[5] = %i, tata[1] = %i\n", &toto[5], &tata[1]);
return 0;
}
4% [jack:/tmp]gcc -o main test.c
5% [alex:/tmp]./main
toto[5]: y
tata[1] : y
toto = -1391393456, tata = -1391393452
toto[5] = -1391393451, tata[1] = -1391393451
Est-ce que toto = tata ? Non.
Est-ce que toto[p] = tata[q] ?
Oui.On appelle cela des tableaux.
C'est un simple exemple. Un langage qui n'autorise pas cela, qui interdit donc, plus globalement, deux pointeurs de pointer sur la même chose, est un langage défaillant (java ?).
Tu peux aussi dire : char* est un entier.
Sisi, char* est un entier (plus ou moins gros en fonction de ton espace mémoire). Le reste n'est que sémantique propre au langage (taille de la zone pointée, ce que je devrais pouvoir faire avec etc).
lle fait un appel système. Elle contribue donc à la progression du thread en cours d'exécution.
Pour x86:
INT is an assembly language instruction for x86 processors that generates a software interrupt.
IO : Input/Output : entrée/sortie : lecture/écriture sur un périphérique; Fait par le noyau (sauf si ce dernier exporte ledit périphérique en userspace, ce qui est rare, si je ne m'abuse, mais faisable, si je ne m'abuse guère plus).
Qu'est-ce que "goto (au sens sémantique)"?
Go to bed corrector!
EXPLICATION
Sauf cas particulier, après un appel à write vous n'avez pas la garantie que des données ont été physiquement écrites, juste qu'une zone mémoire a été copiée ailleurs et que l'écriture physique ou ce qui doit être fait va se produire sous peu.
Donc on pourrait tout à fait avoir une fonction write qui ne fait aucun appel système dans certains cas.
Vraiment ?
Comment ton kernel va savoir qu'il doit copier cette zone mémoire pour l'envoyer sur le dev ?
Il faut une très très grande prudence pour écrire du code portable en C, il y a énormèment de pièges, énormèment de différences entre les compilateurs et les environnements.
La première règle: programmer en C
C'est déjà pas mal, t'as fait le gros du boulot avec ça.
Si tu savais à qui tu t'adresses... lol
Vas-y, raconte moi ?