Home :: International :: Manuals :: Howto :: FAQ :: Man Pages :: Email Login

 
 

 

INTRO

Section: Linux Programmer's Manual (2)
Updated: 22 May 1996
Index Return to Main Contents
 

̾Á°

intro - ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÀâÌÀ  

ÀâÌÀ

¤³¤Î¾Ï¤Ï Linux ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ­½Ò¤·¤Æ¤¤¤ë¡£ Linux 2.0 ¤Ç¤Ï 164 ¸Ä¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Â¸ºß¤¹¤ë¡£  

ľÀܸƤӽФ¹

¤Û¤È¤ó¤É¤Î¾ì¹ç¡¢Ä¾ÀÜ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¸Æ¤Ó½Ð¤¹É¬ÍפϤʤ¤¤¬¡¢ ¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ïɸ½à C ¥é¥¤¥Ö¥é¥ê¤ËɬÍפʴؿô¤¬¼ÂÁõ¤µ¤ì¤Æ ¤¤¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£  

½ñ¼°

#include <linux/unistd.h>

A _syscall macro

desired system call

 

ÀßÄê

¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë´Ø¤·¤Æ¤½¤Î¥×¥í¥È¥¿¥¤¥×¤òÃΤ뤳¤È¤¬½ÅÍ×¤Ç ¤¢¤ë¡£°ú¤­¿ô¤Î¸Ä¿ô¡¢¤½¤ì¤é¤Î·¿¡¢¤½¤·¤ÆÊÖ¤êÃͤη¿¤òÃΤé¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ ¼ÂºÝ¤Î»ÈÍѤˤ¢¤¿¤Ã¤Æ¤Ï¡¢¤è¤êÍÆ°×¤Ë¥·¥¹¥Æ¥à¤ò¸Æ¤Ó½Ð¤¹¤¿¤á¤Ë¼¡¤Î 6 ¸Ä¤Î ¥Þ¥¯¥í¤¬ÍѰդµ¤ì¤Æ¤¤¤ë¡£¤½¤Î·Á¼°¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë:

_syscallX(type,name,type1,arg1,type2,arg2,...)
¤³¤³¤Ç X ¤Ï 0-5 ¤Ç¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬É¬ÍפȤ¹¤ë°ú¤­¿ô¤Î¿ô¤Ç¤¢¤ë¡£
type ¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÊÖ¤êÃͤη¿¤Ç¤¢¤ë¡£
name ¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î̾Á°¤Ç¤¢¤ë¡£
typeN ¤Ï N ÈÖÌܤΰú¤­¿ô¤Î·¿¤Ç¤¢¤ë¡£
argN ¤Ï N ÈÖÌܤΰú¤­¿ô¤Î̾Á°¤Ç¤¢¤ë¡£

¤³¤Î¥Þ¥¯¥í¤Ï»ØÄꤷ¤¿°ú¤­¿ô¤È ̾Á° ¤ò»ý¤Ä´Ø¿ô¤òÀ¸À®¤¹¤ë¡£ °ìö¡¢¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ë¤³¤Î _syscall() ¥Þ¥¯¥í¤¬Æ³Æþ¤µ¤ì¤ë¤È¡¢ ̾Á° ¤Ë¤è¤Ã¤Æ¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¸Æ¤Ö¤³¤È¤¬¤Ç¤­¤ë¡£  

Îã


#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);

/* Ãí°Õ¡§ nroff ¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤«¤éľÀÜ¥³¥Ô¡¼¤¹¤ë¤È¤­¤Ï 
printf ʸ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë;ʬ¤Ê¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤ò½üµî¤¹¤ë ¤³¤È¤ò˺¤ì¤Ê¤¤¤è¤¦¤Ë */ int main(void) { struct sysinfo s_info; int error; error = sysinfo(&s_info); printf("code error = %d\n", error); printf("Uptime = %ds\nLoad: 1 min %d / 5 min %d / 15 min %d\n" "RAM: total %d / free %d / shared %d\n" "Memory in buffers = %d\nSwap: total %d / free %d\n" "Number of processes = %d\n", s_info.uptime, s_info.loads[0], s_info.loads[1], s_info.loads[2], s_info.totalram, s_info.freeram, s_info.sharedram, s_info.bufferram, s_info.totalswap, s_info.freeswap, s_info.procs); return(0); }
 

½ÐÎÏÎã

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 ¤¬Éé¤Ç¤Ê¤¤¾ì¹ç¡¢ ¤½¤ÎÃͤò¤½¤Î¤Þ¤ÞÊÖ¤¹¡£Éé¤Î¾ì¹ç¤Ë¤ÏÊÑ¿ô errno ¤Ë -r ¤òÀßÄꤷ¤Æ -1 ¤òÊÖ¤¹¡£ ³Æ¥¨¥é¡¼¥³¡¼¥É¤Ë´Ø¤·¤Æ¤Ï errno(3) ¤ò»²¾È¡£

¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë (Î㤨¤Ð mmap ¤Ê¤É) ¤Ï 5 ¸Ä°Ê¾å¤Î°ú¤­¿ô¤òÍ׵᤹¤ë¡£ ¤³¤¦¤¤¤Ã¤¿¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥¹¥¿¥Ã¥¯¤Ë°ú¤­¿ô¤ò¥×¥Ã¥·¥å¤·¡¢ ¤½¤Î°ú¤­¿ô¤Î¤«¤¿¤Þ¤ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÅϤ·¤Æ½èÍý¤µ¤ì¤ë¡£

¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÄêµÁ¤¹¤ë¾ì¹ç¡¢¤½¤Î°ú¤­¿ô¤Î·¿¤ÏÃÍÅϤ·(by-value)¤Ç¤¢¤ë¤« (¹½Â¤ÂΤΤ褦¤Ê½¸¹çŪ¤Ê¥Ç¡¼¥¿¤Î¾ì¹ç¤Ï)¥Ý¥¤¥ó¥¿ÅϤ·(by-pointer) ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£  

½àµò

¤³¤Î¾Ï¤Ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ê´ö¤Ä¤«¤Îά¹æ¤òÍÍ¡¹¤Ê Unix ¤Î¥¿¥¤¥×¤ò»Ø¼¨ ¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£
SVr4
"Programmer's Reference Manual: Operating System API (Intel processors)" (Prentice-Hall1992, ISBN 0-13-951294-2) ¤Ë µ­½Ò¤µ¤ì¤Æ¤¤¤ë System V Release 4 Unix¡£
SVID
System V Interface Definition¡£¤³¤ì¤Ï "The System V Interface Definition, Fourth Edition" ¤Ë µ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£
POSIX.1
IEEE 1003.1-1990 part 1¡£ÊÌ̾ ISO/IEC 9945-1:1990s¡£ Donald Lewine ¤Î "POSIX Programmer's Guide" (O'Reilly & Associates,Inc., 1991, ISBN 0-937175-73-0)¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë "IEEE Portable Operating System Interface for Computing Environments" ¤Ë¤â²òÀ⤬¤¢¤ë¡£
POSIX.1b
IEEE Std 1003.1b-1993 (POSIX.1b standard) ¤Î°Ü¿¢²Äǽ¤Ê¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥° ¥·¥¹¥Æ¥à¤Î¤¿¤á¤Î¥ê¥¢¥ë¥¿¥¤¥àµ¡¹½¡£ÊÌ̾ ISO/IEC 9945-1:1996¡£ Bill O. Gallmeister ¤Î "Programming for the real world - POSIX.4" (O'Reilly & Associates, Inc. ISBN1-56592-074-0) ¤Ë¤â²òÀ⤬¤¢¤ë¡£
SUS, SUSv2
Single Unix Specification. (X/Open ¤È The Open Group ¤Ë¤è¤Ã¤ÆºîÀ®¤µ¤ì¤¿¡£ http://www.UNIX-systems.org/version2/ ¤â»²¾È¤Î¤³¤È¡£)
4.3BSD/4.4BSD
Berkeley Unix 4.3 ¤È 4.4 ¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¡£ 4.4BSD ¤Ï 4.3 ¤ËÂФ·¤Æ¾å°Ì¸ß´¹¤Ç¤¢¤ë¡£
V7
¥Ù¥ë¸¦µæ½ê¤ËͳÍ褹¤ë¸µÁÄ Unix¤Ç¤¢¤ë Version 7¡£
 

¥Õ¥¡¥¤¥ë

/usr/include/linux/unistd.h  

´ØÏ¢¹àÌÜ

errno(3)


 

Index

̾Á°
ÀâÌÀ
ľÀܸƤӽФ¹
½ñ¼°
ÀßÄê
Îã
½ÐÎÏÎã
Ãí°Õ
½àµò
¥Õ¥¡¥¤¥ë
´ØÏ¢¹àÌÜ

 
 
 
 
Google
  Web Linuxinfor   
 

Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account

Document on this page is part of "Linuxinfor Man Pages in HTML Format: man2". See Index Page for more info about Authorship and Copyright.

1999-2008 Linuxinfor.com. No rights reserved.