Khác biệt giữa các bản “Hàm hệ thống”

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ả ==
229

lần sửa đổi