rewrite,less C/syscall