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 3: Dòng 3:
== Danh sách hàm hệ thống ==
== Danh sách hàm hệ thống ==
<source lang="c">
<source lang="c">
/*process management*/ <br />
/*process management*/
pid_t fork(void); <br />
pid_t fork(void);
pid_t waitpid(pid_t pid,size_t *status,size_t options);<br />
pid_t waitpid(pid_t pid,size_t *status,size_t options);
size_t execve(const char *name,char *const *argv,char *const* envp);<br />
size_t execve(const char *name,char *const *argv,char *const* envp);
void exit(size_t status);

pid_t getpid();
void exit(size_t status);<br />
pid_t getppid();

/*signals*/
pid_t getpid();<br />
pid_t getppid();<br />
/*signals*/<br />
size_t sigaction(size_t sig,void *(*fpt)(void *) );<br />
size_t sigaction(size_t sig,void *(*fpt)(void *) );<br />
size_t sigreturn();

size_t sigreturn();<br />
size_t sigprocmask();
size_t sigpending();

size_t sigprocmask();<br />
size_t sigsuspend();
size_t pause();

size_t sigpending();<br />
size_t alarm(time_t seconds);
size_t kill(pid_t pid,size_t sig);

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

size_t open(const char *name,size_t flag,mode_t mode);
size_t pause();<br />
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 alarm(time_t seconds);<br />
size_t close(size_t fd);

size_t kill(pid_t pid,size_t sig);<br />
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);
/*file system management*/<br />
size_t access(const char *nam,int a_mode);

size_t creat(const char *name,mode_t mod);<br />
size_t rename(const char *old_name,const char *new_name);
size_t dup(size_t fd);

size_t open(const char *name,size_t flag,mode_t mode);<br />
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 read(size_t fd,void *buf,size_t nbytes);<br />
size_t pipe(size_t *fd);
size_t mknod(const char *name,mode_t mode,dev_t dev);

size_t write(size_t fd,const void *buf,size_t nbytes);<br />
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 close(size_t fd);<br />
size_t unlink(const char *name);

size_t sync();
off_t lseek(size_t fd,off_t pos,size_t how);<br />
size_t chdir(const char *name);

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

size_t fstat(size_t fd,struct stat *buf);<br />
size_t faccess(size_t fd,size_t amode);
size_t getcwd(const char *buf,size_t size);

size_t access(const char *nam,int a_mode);<br />
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);
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 />
/*Protection*/<br />
size_t chmod(const char *name,mode_t mode);<br />
size_t chmod(const char *name,mode_t mode);
size_t chown(const char *name,uid_t uid,gid_t gid);<br />
size_t chown(const char *name,uid_t uid,gid_t gid);
uid_t getuid();<br />
uid_t getuid();
gid_t getgid();<br />
gid_t getgid();
size_t setuid(uid_t uid);<br />
size_t setuid(uid_t uid);
size_t setgid(gid_t gid);<br />
size_t setgid(gid_t gid);
mode_t umask(mode_t mode);<br />
mode_t umask(mode_t mode);
size_t fchmod(size_t fd,mode_t mode);<br />
size_t fchmod(size_t fd,mode_t mode);
size_t fchown(size_t fd,uid_t uid,gid_t gid);<br />
size_t fchown(size_t fd,uid_t uid,gid_t gid);
/*time management*/<br />
/*time management*/
time_t time(time_t *ret); /*Get the elapsed time since Jan 1,1970*/<br />
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*/<br />
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*/<br />
size_t utime(const char *name,time_t last); /*set last access for file*/
size_t times(struct tm *tbuf);<br />
size_t times(struct tm *tbuf);
size_t sleep(time_t seconds); <br />
size_t sleep(time_t seconds);
size_t nanosleep(struct timespec *rqtp,struct timespec *rmtp);<br />
size_t nanosleep(struct timespec *rqtp,struct timespec *rmtp);
</source>
</source>



Phiên bản lúc 10:01, 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 *) );<br />
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*/<br />
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);