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

Nội dung được xóa Nội dung được thêm vào
Panfider (thảo luận | đóng góp)
Không có tóm lược sửa đổi
Panfider (thảo luận | đóng góp)
Dòng 1:
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 ==
== Phân loại ==
<code language="C">
1. Quản lý tệp
/*process management*/
* fd = open(name,flag,mode)
pid_t fork(void);
* result = close(fd)
pid_t waitpid(pid_t pid,size_t *status,size_t options);
* nbytes = read(fd,buffer,size)
size_t execve(const char *name,char *const *argv,char *const* envp);
* nbytes = write(fd,buffer,size)
void exit(size_t status);
* offset = lseek(fd,offset,whence)
pid_t getpid();
* s = stat(name,&buf)
pid_t getppid();
* s = fstat(fd,&buf)
/*signals*/
* fd = creat(name,mode)
size_t sigaction(size_t sig,void *(*fpt)(void *) );
* s = access(name,amode)
size_t sigreturn();
* s = rename(old,new)
size_t sigprocmask();
* s = ioclt(fd,command,argp)
size_t sigpending();
* s = fcntl(fd,command,option)
size_t sigsuspend();
2. Quản lý tiến trình
size_t pause();
* pid = fork()
size_t alarm(time_t seconds);
* pid = waitpid(pid,&status,option)
size_t kill(pid_t pid,size_t sig);
* s = wait(&status)
/*file system management*/
* s = execve(name,agrv,envp)
size_t creat(const char *name,mode_t mod);
* exit(status)
size_t open(const char *name,size_t flag,mode_t mode);
3. Thư mục và quản lý hệ thống file
size_t read(size_t fd,void *buf,size_t nbytes);
* s = mkdir(name,mode)
size_t write(size_t fd,const void *buf,size_t nbytes);
* s = rmdir(name);
size_t close(size_t fd);
* s = link(name1,name2)
off_t lseek(size_t fd,off_t pos,size_t how);
* s = unlink(name)
size_t stat(const char *name,struct stat *buf);
* s = mount(dev,name,flag)
size_t fstat(size_t fd,struct stat *buf);
* s = umount(dev)
size_t access(const char *nam,int a_mode);
* s = sync()
size_t rename(const char *old_name,const char *new_name);
* s = chdir(dirname)
size_t dup(size_t fd);
* s = chroot(dirname)
size_t ioctl(size_t fd,size_t cmd,size_t option);
5. Bảo vệ
size_t fcntl(size_t fd,size_t cmd,size_t option);
* s = chmod(name,mode)
size_t pipe(size_t *fd);
* s = chown(name,user,group)
 
* uid = getuid()
size_t mknod(const char *name,mode_t mode,dev_t dev);
* gid - getgid()
size_t mkdir(const char *name,mode_t mode);
* s = setuid(uid)
size_t rmdir(const char *name);
* s = setgid(gid)
size_t link(const char *old_name,const char *new_name);
* s = chown(name,ower,group)
size_t unlink(const char *name);
6. Quản lý thời gian
size_t sync();
* seconds = time(&seconds)
size_t chdir(const char *name);
* s = stime(tp)
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);
</code>
 
== Danh sách và mô tả ==