Passage de paramètres à des appels système
J'ai fait une base helloWorld appel système exemple qui n'avait pas de paramètres et était juste:
int main()
{
syscall(__NR_helloWorld);
return 0;
}
Mais maintenant, je suis à essayer de comprendre comment passer des arguments à l'appel système (ie. un long
). Quel est le format exactement, j'ai essayé:
int main()
{
long input = 1;
long result = syscall(__NR_someSysCall, long input, long);
return 0;
}
Où il prend un long
et renvoie un long
, mais il n'est pas de compiler correctement; quelle est la bonne syntaxe?
OriginalL'auteur Jeff | 2011-04-24
Vous devez vous connecter pour publier un commentaire.
Supprimer les noms de type de. C'est juste un appel de fonction. Exemple:
Non,
1
un paramètre -stdout
descripteur de fichier nombre dans ce cas,4
est la longueur de la mémoire tampon, comme danswrite( FILENO_STDOUT, boo, 4 );
Il a obtenu, merci!
OriginalL'auteur Nikolai Fetissov
Le prototype pour
syscall
estCe dit qu'il faut un nombre variable (et le type) des paramètres. Dépend du type de système d'appel.
syscall
n'est pas normal d'interface à un système particulier d'appel. Ceux-ci peuvent être explicitement codé, par exemplewrite(fd, buf, len)
.OriginalL'auteur wallyk