Khác biệt giữa bản sửa đổi của “Hàm hệ thống”

Bách khoa toàn thư mở Wikipedia
Nội dung được xóa Nội dung được thêm vào
Panfider (thảo luận | đóng góp)
Panfider (thảo luận | đóng góp)
Dòng 4: Dòng 4:
<code language="C">
<code language="C">
/*process management*/
/*process management*/
pid_t fork(void);
pid_t fork(void); <br />
pid_t waitpid(pid_t pid,size_t *status,size_t options);
pid_t waitpid(pid_t pid,size_t *status,size_t options);<br />
size_t execve(const char *name,char *const *argv,char *const* envp);
size_t execve(const char *name,char *const *argv,char *const* envp);<br />
void exit(size_t status);
pid_t getpid();
pid_t getppid();
/*signals*/
size_t sigaction(size_t sig,void *(*fpt)(void *) );
size_t sigreturn();
size_t sigprocmask();
size_t sigpending();
size_t sigsuspend();
size_t pause();
size_t alarm(time_t seconds);
size_t kill(pid_t pid,size_t sig);
/*file system management*/
size_t creat(const char *name,mode_t mod);
size_t open(const char *name,size_t flag,mode_t mode);
size_t read(size_t fd,void *buf,size_t nbytes);
size_t write(size_t fd,const void *buf,size_t nbytes);
size_t close(size_t fd);
off_t lseek(size_t fd,off_t pos,size_t how);
size_t stat(const char *name,struct stat *buf);
size_t fstat(size_t fd,struct stat *buf);
size_t access(const char *nam,int a_mode);
size_t rename(const char *old_name,const char *new_name);
size_t dup(size_t fd);
size_t ioctl(size_t fd,size_t cmd,size_t option);
size_t fcntl(size_t fd,size_t cmd,size_t option);
size_t pipe(size_t *fd);


void exit(size_t status);<br />
size_t mknod(const char *name,mode_t mode,dev_t dev);
size_t mkdir(const char *name,mode_t mode);
size_t rmdir(const char *name);
size_t link(const char *old_name,const char *new_name);
size_t unlink(const char *name);
size_t sync();
size_t chdir(const char *name);
size_t chroot(const char *name);


pid_t getpid();<br />
size_t fchdir(size_t fd);

size_t faccess(size_t fd,size_t amode);
pid_t getppid();<br />
size_t getcwd(const char *buf,size_t size);

size_t mount(const char *dev_name,const char *dir_name,const char *type,unsigned long flags,const void *data);
/*signals*/<br />
size_t umount(const char *dir_name,unsigned long flags);

size_t getdents(size_t fd,struct dirents *dents,size_t counts);
size_t sigaction(size_t sig,void *(*fpt)(void *) );<br />
/*Protection*/

size_t chmod(const char *name,mode_t mode);
size_t sigreturn();<br />
size_t chown(const char *name,uid_t uid,gid_t gid);

uid_t getuid();
size_t sigprocmask();<br />
gid_t getgid();

size_t setuid(uid_t uid);
size_t setgid(gid_t gid);
size_t sigpending();<br />

mode_t umask(mode_t mode);
size_t fchmod(size_t fd,mode_t mode);
size_t sigsuspend();<br />

size_t fchown(size_t fd,uid_t uid,gid_t gid);
size_t pause();<br />
/*time management*/

time_t time(time_t *ret); /*Get the elapsed time since Jan 1,1970*/
size_t stime(time_t when); /*set time since Jan 1,1970*/
size_t alarm(time_t seconds);<br />

size_t utime(const char *name,time_t last); /*set last access for file*/
size_t times(struct tm *tbuf);
size_t kill(pid_t pid,size_t sig);<br />

size_t sleep(time_t seconds);
/*file system management*/<br />
size_t nanosleep(struct timespec *rqtp,struct timespec *rmtp);

size_t creat(const char *name,mode_t mod);<br />

size_t open(const char *name,size_t flag,mode_t mode);<br />

size_t read(size_t fd,void *buf,size_t nbytes);<br />

size_t write(size_t fd,const void *buf,size_t nbytes);<br />

size_t close(size_t fd);<br />

off_t lseek(size_t fd,off_t pos,size_t how);<br />

size_t stat(const char *name,struct stat *buf);<br />

size_t fstat(size_t fd,struct stat *buf);<br />

size_t access(const char *nam,int a_mode);<br />

size_t rename(const char *old_name,const char *new_name);<br />

size_t dup(size_t fd);<br />

size_t ioctl(size_t fd,size_t cmd,size_t option);<br />

size_t fcntl(size_t fd,size_t cmd,size_t option);<br />

size_t pipe(size_t *fd);<br />


size_t mknod(const char *name,mode_t mode,dev_t dev);<br />

size_t mkdir(const char *name,mode_t mode);<br />

size_t rmdir(const char *name);<br />

size_t link(const char *old_name,const char *new_name);<br />

size_t unlink(const char *name);<br />

size_t sync();<br />

size_t chdir(const char *name);<br />

size_t chroot(const char *name);<br />


size_t fchdir(size_t fd);<br />

size_t faccess(size_t fd,size_t amode);<br />

size_t getcwd(const char *buf,size_t size);<br />

size_t mount(const char *dev_name,const char *dir_name,const char *type,unsigned long flags,const void *data);<br />

size_t umount(const char *dir_name,unsigned long flags);<br />
size_t getdents(size_t fd,struct dirents *dents,size_t counts);<br />
/*Protection*/<br />
size_t chmod(const char *name,mode_t mode);<br />
size_t chown(const char *name,uid_t uid,gid_t gid);<br />
uid_t getuid();<br />
gid_t getgid();<br />
size_t setuid(uid_t uid);<br />
size_t setgid(gid_t gid);<br />
mode_t umask(mode_t mode);<br />
size_t fchmod(size_t fd,mode_t mode);<br />
size_t fchown(size_t fd,uid_t uid,gid_t gid);<br />
/*time management*/<br />
time_t time(time_t *ret); /*Get the elapsed time since Jan 1,1970*/<br />
size_t stime(time_t when); /*set time since Jan 1,1970*/<br />
size_t utime(const char *name,time_t last); /*set last access for file*/<br />
size_t times(struct tm *tbuf);<br />
size_t sleep(time_t seconds); <br />
size_t nanosleep(struct timespec *rqtp,struct timespec *rmtp);<br />
</code>
</code>



Phiên bản lúc 09:54, ngày 12 tháng 10 năm 2010

Hàm hệ thống là những hàm được thực thi bên trong nhân hệ điều hành(system call). Có hơn 50 hàm hệ thống cơ bản, nhưng các nhân như Linux, BSD thì có tới hơn 200 hàm hệ thống.

Danh sách hàm hệ thống

/*process management*/ pid_t fork(void);
pid_t waitpid(pid_t pid,size_t *status,size_t options);
size_t execve(const char *name,char *const *argv,char *const* envp);

void exit(size_t status);

pid_t getpid();

pid_t getppid();

/*signals*/

size_t sigaction(size_t sig,void *(*fpt)(void *) );

size_t sigreturn();

size_t sigprocmask();

size_t sigpending();

size_t sigsuspend();

size_t pause();

size_t alarm(time_t seconds);

size_t kill(pid_t pid,size_t sig);

/*file system management*/

size_t creat(const char *name,mode_t mod);

size_t open(const char *name,size_t flag,mode_t mode);

size_t read(size_t fd,void *buf,size_t nbytes);

size_t write(size_t fd,const void *buf,size_t nbytes);

size_t close(size_t fd);

off_t lseek(size_t fd,off_t pos,size_t how);

size_t stat(const char *name,struct stat *buf);

size_t fstat(size_t fd,struct stat *buf);

size_t access(const char *nam,int a_mode);

size_t rename(const char *old_name,const char *new_name);

size_t dup(size_t fd);

size_t ioctl(size_t fd,size_t cmd,size_t option);

size_t fcntl(size_t fd,size_t cmd,size_t option);

size_t pipe(size_t *fd);


size_t mknod(const char *name,mode_t mode,dev_t dev);

size_t mkdir(const char *name,mode_t mode);

size_t rmdir(const char *name);

size_t link(const char *old_name,const char *new_name);

size_t unlink(const char *name);

size_t sync();

size_t chdir(const char *name);

size_t chroot(const char *name);


size_t fchdir(size_t fd);

size_t faccess(size_t fd,size_t amode);

size_t getcwd(const char *buf,size_t size);

size_t mount(const char *dev_name,const char *dir_name,const char *type,unsigned long flags,const void *data);

size_t umount(const char *dir_name,unsigned long flags);
size_t getdents(size_t fd,struct dirents *dents,size_t counts);
/*Protection*/
size_t chmod(const char *name,mode_t mode);
size_t chown(const char *name,uid_t uid,gid_t gid);
uid_t getuid();
gid_t getgid();
size_t setuid(uid_t uid);
size_t setgid(gid_t gid);
mode_t umask(mode_t mode);
size_t fchmod(size_t fd,mode_t mode);
size_t fchown(size_t fd,uid_t uid,gid_t gid);
/*time management*/
time_t time(time_t *ret); /*Get the elapsed time since Jan 1,1970*/
size_t stime(time_t when); /*set time since Jan 1,1970*/
size_t utime(const char *name,time_t last); /*set last access for file*/
size_t times(struct tm *tbuf);
size_t sleep(time_t seconds);
size_t nanosleep(struct timespec *rqtp,struct timespec *rmtp);

Danh sách và mô tả

Danh sách này gần giống với chuẩn POSIX : void exit(int status);
pid_t fork();
int open(const char *name,int flag,mode_t mode);