Mở trình đơn chính

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.

Mục lục

Tổng quátSửa đổi

Hạt nhân hệ điều hành như một dịch vụ nó các ứng dụng gọi đến và yêu cầu thông qua các hàm hệ thống. Tất cả tương tác của chương trình đến hệ tập tin,thiết bị,bộ nhớ,vào/ra chỉ có một hướng là yêu cầu đến hạt nhân thông qua hàm hệ thống.

Danh sách hàm hệ thốngSửa đổi

Danh sách hàm hệ thống này tương thích với chuẩn POSIX. Có một số cấu trúc không nằm ở đây xin tham khảo các bài về header 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	create(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	dump(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);

Xem thêmSửa đổi

Tham khảoSửa đổi