Rechercher une page de manuel
intro
Langue: ru
Version: 1996-05-22 (openSuse - 09/10/07)
Section: 2 (Appels système)
Sommaire
éíñ
intro, _syscall - óÉÓÔÅÍÎÙÅ ×ÙÚÏ×Ù: ××ÅÄÅÎÉÅïðéóáîéå
÷ ÜÔÏÊ ÇÌÁ×Å ÏÐÉÓÙ×ÁÀÔÓÑ ÓÉÓÔÅÍÎÙÅ ×ÙÚÏ×Ù Linux. óÐÉÓÏË ÜÔÉÈ 164 ÓÉÓÔÅÍÎÙÈ ×ÙÚÏ×Ï× ÎÁÈÏÄÉÔÓÑ × syscalls(2).ðÒÑÍÏÊ ×ÙÚÏ×
÷ ÂÏÌØÛÉÎÓÔ×Å ÓÌÕÞÁÅ× ÎÅ ÔÒÅÂÕÅÔÓÑ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÉÓÔÅÍÎÙÅ ×ÙÚÏ×Ù ÎÁÐÒÑÍÕÀ, ÎÏ ÂÙ×ÁÀÔ ÓÌÕÞÁÉ, ËÏÇÄÁ óÔÁÎÄÁÒÔÎÁÑ âÉÂÌÉÏÔÅËÁ ñÚÙËÁ C (libc) ÎÅ ÒÅÁÌÉÚÕÅÔ ËÁËÕÀ-ÎÉÂÕÄØ ÐÏÌÅÚÎÕÀ ÆÕÎËÃÉÀ.ëÒÁÔËÁÑ ó×ÏÄËÁ
#include <linux/unistd.h>A _syscall macro
desired system call
îÁÓÔÒÏÊËÁ
ïÞÅÎØ ×ÁÖÎÏ ÚÎÁÔØ ÐÒÏÔÏÔÉÐ ÓÉÓÔÅÍÎÏÇÏ ×ÙÚÏ×Á. ÷ÁÍ ÎÕÖÎÏ ÚÎÁÔØ, ÓËÏÌØËÏ Õ ÜÔÏÇÏ ×ÙÚÏ×Á ÁÒÇÕÍÅÎÔÏ×, ËÁËÏ×Ù ÉÈ ÔÉÐÙ, ËÁËÏ× ÔÉÐ, ×ÏÚ×ÒÁÝÁÅÍÙÊ ÆÕÎËÃÉÅÊ. åÓÔØ ÛÅÓÔØ ÍÁËÒÏÓÏ×, ÏÂÌÅÇÞÁÀÝÉÈ ÓÉÓÔÅÍÎÙÅ ×ÙÚÏ×Ù. ïÎÉ ×ÙÇÌÑÄÑÔ ÔÁË:- _syscallX(type,name,type1,arg1,type2,arg2,...)
-
-
- ÇÄÅ X ÒÁ×ÎÏ ÏÔ 0 ÄÏ 5 É ÏÚÎÁÞÁÅÔ ËÏÌÉÞÅÓÔ×Ï ÁÒÇÕÍÅÎÔÏ×, ÐÒÉÎÉÍÁÅÍÙÈ ÓÉÓÔÅÍÎÙÍ ×ÙÚÏ×ÏÍ
- type ÜÔÏ ÔÉÐ, ×ÏÚ×ÒÁÝÁÅÍÙÊ ÓÉÓÔÅÍÎÙÍ ×ÙÚÏ×ÏÍ
- name ÎÁÚ×ÁÎÉÅ ÓÉÓÔÅÍÎÏÇÏ ×ÙÚÏ×Á
- typeN ÔÉÐ N-ÏÇÏ ÁÒÇÕÍÅÎÔÁ
- argN ÉÍÑ N-ÏÇÏ ÁÒÇÕÍÅÎÔÁ
-
üÔÉ ÍÁËÒÏÓÙ ÓÏÚÄÁÀÔ ÆÕÎËÃÉÀ, ËÏÔÏÒÁÑ ÎÁÚÙ×ÁÅÔÓÑ name, Ó ÚÁÄÁÎÎÙÍÉ ÁÒÇÕÍÅÎÔÁÍÉ. ðÏÓÌÅ ÔÏÇÏ, ËÁË ×Ù ×ËÌÀÞÉÔÅ ÍÁËÒÏÓ _syscall() × Ó×ÏÊ ÆÁÊÌ Ó ÉÓÈÏÄÎÙÍ ËÏÄÏÍ, ×Ù ÍÏÖÅÔÅ ×ÙÚÙ×ÁÔØ ÆÕÎËÃÉÉ ÓÉÓÔÅÍÙ, ÐÏÌØÚÕÑÓØ ÉÍÅÎÅÍ name.
ðòéíåò
#include <stdio.h> #include <linux/unistd.h> /* for _syscallX macros/related stuff */ #include <linux/kernel.h> /* for struct sysinfo */ _syscall1(int, sysinfo, struct sysinfo *, info); /* Note: if you copy directly from the nroff source, remember to
ðÒÉÍÅÒ ÷ÙÄÁÞÉ
code error = 0 uptime = 502034s Load: 1 min 13376 / 5 min 5504 / 15 min 1152 RAM: total 15343616 / free 827392 / shared 8237056 Memory in buffers = 5066752 Swap: total 27881472 / free 24698880 Number of processes = 40
úáíåþáîéñ
íÁËÒÏÓÙ _syscall() îå ÓÏÚÄÁÀÔ ÐÒÏÔÏÔÉÐÁ. ÷ÁÍ ÍÏÖÅÔ ÐÏÔÒÅÂÏ×ÁÔØÓÑ ÓÏÚÄÁÔØ ÅÇÏ ×ÒÕÞÎÕÀ, ÏÓÏÂÅÎÎÏ × ÐÒÏÇÒÁÍÍÅ ÎÁ C++.óÉÓÔÅÍÎÙÅ ×ÙÚÏ×Ù ÎÅ ÏÂÑÚÁÔÅÌØÎÏ ×ÏÚ×ÒÁÝÁÀÔ ÔÏÌØËÏ ÐÏÌÏÖÉÔÅÌØÎÙÅ ÉÌÉ ÏÔÒÉÃÁÔÅÌØÎÙÅ ËÏÄÙ ÏÛÉÂÏË. þÔÏÂÙ ×ÙÑÓÎÉÔØ ÎÁÓÔÏÑÝÅÅ ÐÏÌÏÖÅÎÉÅ ÄÅÌ, ÍÏÖÅÔ ÐÏÔÒÅÂÏ×ÁÔØÓÑ ÏÂÒÁÔÉÔØÓÑ Ë ÉÓÈÏÄÎÙÍ ÔÅËÓÔÁÍ. ïÂÙÞÎÏ ËÏÄ ÏÛÉÂËÉ -- ÜÔÏ ÓÔÁÎÄÁÒÔÎÙÊ ËÏÄ ÏÛÉÂËÉ ÓÏ ÚÎÁËÏÍ ÍÉÎÕÓ, ÎÁÐÒÉÍÅÒ, -EPERM. íÁËÒÏÓÙ _syscall() ×ÏÚ×ÒÁÝÁÀÔ ÒÅÚÕÌØÔÁÔ ÓÉÓÔÅÍÎÏÇÏ ×ÙÚÏ×Á r, ÅÓÌÉ r ÎÅÏÔÒÉÃÁÔÅÌØÎÏ, Á × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ×ÏÚ×ÒÁÝÁÀÔ -1 É ÕÓÔÁÎÁ×ÌÉ×ÁÀÔ ÐÅÒÅÍÅÎÎÕÀ errno × ÚÎÁÞÅÎÉÅ -r. ëÏÄÙ ÏÛÉÂÏË ÏÐÉÓÁÎÙ × errno(3).
îÅËÏÔÏÒÙÅ ÓÉÓÔÅÍÎÙÅ ×ÙÚÏ×Ù, ÔÁËÉÅ ËÁË mmap, ÔÒÅÂÕÀÔ ÂÏÌØÛÅ ÐÑÔÉ ÁÒÇÕÍÅÎÔÏ×. ïÎÉ ÏÂÒÁÂÁÔÙ×ÁÀÔÓÑ ÐÕÔÅÍ ÐÏÍÅÝÅÎÉÑ ÁÒÇÕÍÅÎÔÏ× ÎÁ ÓÔÅË É ÐÅÒÅÄÁÞÉ ÕËÁÚÁÔÅÌÑ ÎÁ ÂÌÏË ÁÒÇÕÍÅÎÔÏ×.
ðÒÉ ÏÐÉÓÁÎÉÉ ÓÉÓÔÅÍÎÏÇÏ ×ÙÚÏ×Á ÁÒÇÕÍÅÎÔÙ äïìöîù ÐÅÒÅÄÁ×ÁÔØÓÑ "ÐÏ ÚÎÁÞÅÎÉÀ" ÉÌÉ Ó ÐÏÍÏÝØÀ ÕËÁÚÁÔÅÌÑ (ÄÌÑ ÁÇÒÅÇÁÔÎÙÈ ÔÉÐÏ×, ÎÁÐÒÉÍÅÒ, ÓÔÒÕËÔÕÒ).
ðÒÅÄÐÏÞÔÉÔÅÌØÎÙÊ ÓÐÏÓÏ ×ÙÚÏ×Á ÓÉÓÔÅÍÎÙÈ ×ÙÚÏ×Ï×, Ï ËÏÔÏÒÙÈ ÐÏËÁ ÅÝ£ ÎÅ ÚÎÁÅÔ glibc, ÓÏÓÔÏÉÔ × ÉÓÐÏÌØÚÏ×ÁÎÉÉ syscall(2).
óïïô÷åôóô÷éå óôáîäáòôáí
äÌÑ ÏÂÏÚÎÁÞÅÎÉÅ ×ÁÒÉÁÎÔÏ× Unix É ÒÁÚÎÏÏÂÒÁÚÎÙÈ ÓÔÁÎÄÁÒÔÏ×, ËÏÔÏÒÙÍ ÓÏÏÔ×ÅÔÓÔ×ÕÀÔ ÓÉÓÔÅÍÎÙÅ ×ÙÚÏ×Ù, ÏÐÉÓÁÎÎÙÅ × ÜÔÏÊ ÓÅËÃÉÉ ÒÕËÏ×ÏÄÓÔ×Á, ÉÓÐÏÌØÚÕÀÔÓÑ ÒÁÚÌÉÞÎÙÅ ÓÏËÒÁÝÅÎÉÑ:- SVr4
- Unix-System V Release 4, ÏÐÉÓÁÎÎÁÑ × "Programmer's Reference Manual: Operating System API (Intel processors)" (Prentice-Hall 1992, ISBN 0-13-951294-2)
- SVID
- System V Interface Definition (ïÐÉÓÁÎÉÅ éÎÔÅÒÆÅÊÓÁ óÉÓÔÅÍÙ V), ÏÐÉÓÁÎÎÏÅ × "The System V Interface Definition, Fourth Edition".
- POSIX.1
- IEEE 1003.1-1990 ÞÁÓÔØ 1, ÔÁËÖÅ ÉÚ×ÅÓÔÎÙÊ ËÁË ISO/IEC 9945-1:1990s, ÔÁËÖÅ ÉÚ×ÅÓÔÎÙÊ ËÁË "IEEE Portable Operating System Interface for Computing Environments" (éÎÔÅÒÆÅÊÓ ðÅÒÅÎÏÓÉÍÏÊ ïÐÅÒÁÃÉÏÎÎÏÊ óÉÓÔÅÍÙ ÄÌÑ ÷ÙÞÉÓÌÉÔÅÌØÎÙÈ óÒÅÄ IEEE), ÒÁÚßÑÓÎÅÎÎÙÊ × ËÎÉÇÅ Donald Lewine "POSIX Programmer's Guide" (O'Reilly & Associates, Inc., 1991, ISBN 0-937175-73-0.
- POSIX.1b
- IEEE Std 1003.1b-1993 (ÓÔÁÎÄÁÒÔ POSIX.1b), ÏÐÉÓÙ×ÁÀÝÉÊ ×ÏÚÍÏÖÎÏÓÔÉ ÒÁÂÏÔÙ × ÒÅÁÌØÎÏÍ ×ÒÅÍÅÎÉ ÐÏÄ ÐÅÒÅÎÏÓÉÍÙÍÉ ÏÐÅÒÁÃÉÏÎÎÙÍÉ ÓÉÓÔÅÍÁÍÉ, ÒÁÚßÑÓÎÅÎÎÙÊ × ËÎÉÇÅ Bill O. Gallmeister "Programming for the real world - POSIX.4" (O'Reilly & Associates, Inc. ISBN 1-56592-074-0).
- 4.3BSD/4.4BSD
- ÷ÅÒÓÉÉ 4.3 É 4.4. ÄÉÓÔÒÉÂÕÃÉÉ Berkeley Unix. 4.4BSD ÂÙÌÁ ÏÂÒÁÔÎÏ ÓÏ×ÍÅÓÔÉÍÁ Ó 4.3.
- SUS, SUSv2
- Single Unix Specification. (òÁÚÒÁÂÏÔÁÎÁ X/Open É The Open Group. óÍÏÔÒÉ ÔÁËÖÅ http://www.UNIX-systems.org/version2/.)
- V7
- ÷ÅÒÓÉÑ 7, ÉÓÈÏÄÎÁÑ ×ÅÒÓÉÑ Unix ÏÔ Bell Labs.
æáêìù
/usr/include/linux/unistd.hóíïôòé ôáëöå
errno(3) syscall(2),ðåòå÷ïä
Copyright (C) Alexey Mahotkin <alexm@hsys.msk.ru> 1999, ÷ÉËÔÏÒ ÷ÉÓÌÏÂÏËÏ× <corochoone@perm.ru> 2003Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre