write( )
头文件:
#include<unistd.h>
原型:
ssize_t write(int fd,const void*buf,size_t count);
参数说明:
fd:文件描述符(通常为1)
buf:通常是一个字符串
count:每次写入的字节数
返回值:
成功返回字节数
失败返回-1并设置error
read( )
头文件:
#include<unistd.h>
从文件描述符对应文件读取数据
原型:
ssize_t read(int fd,void*buf,size_t count)
fd:文件描述符(通常为0)
buf:为读出数据的缓冲区
count:每次读取的字节数
返回值:
成功返回读出的字节数
失败返回-1并设置error
代码:
#include<unistd.h>
#include<string.h>
#define SIZE 1024
int main(void) {
char prompt[] = "Type a command: ";
char buf[SIZE];
// Ask the user to type a command:
write(1, prompt, len);
// Read from the standard input the command typed by the user (note
// that fgets also puts into the array buf the °Ø\n°Ø character typed
// by the user when the user presses the Enter key on thekeyboard):
read(0, buf, SIZE);
// Replace the Enter key typed by the user with °Ø\0°Ø:
for(int i = 0; i < SIZE; i++) {
if(buf[i] == '\n' || buf[i] == '\r') {
buf[i] = '\0';
break;
}
}
// Execute the command typed by the user (only prints it for now):
write(1, buf, len);
return 0;
}