700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > STDIN_FILENO和STDOUT_FILENO

STDIN_FILENO和STDOUT_FILENO

时间:2021-07-04 15:55:55

相关推荐

STDIN_FILENO和STDOUT_FILENO

转自:/sinat_25457161/article/details/48548231

STDIN_FILENO:接收键盘的输入

STDOUT_FILENO:向屏幕输出

程序:

接收用户在屏幕上输入的数据,并在屏幕上输出(要求使用read和wirte实现),用户输入quit就退出程序。

图解说明:

步骤:

1、创建并编写源文件main.c:

#include <stdio.h>

#include <string.h>

#include <unistd.h>

int main(int argc, char *args[])

{

// 定义读取文件的缓冲区

char buf_read[1024];

// 定义写入文件的缓冲区

char buf_write[1024];

// 循环读取用户从键盘输入的信息

while (1)

{

// 清空读取文件缓冲区中的内存

memset(buf_read, 0, sizeof(buf_read));

// 清空写入文件缓冲区中的内存

memset(buf_write, 0, sizeof(buf_write));

// 打印提示信息

char input_message[100] = "input some words : ";

write(STDOUT_FILENO, input_message, sizeof(input_message));

// 读取用户的键盘输入信息

read(STDIN_FILENO, buf_read, sizeof(buf_read));

// 判断用户输入的内容是否为quit

if (strncmp(buf_read, "quit", 4) == 0)

{

// 如果用户输入的是quit,程序退出循环

break;

}

// 如果用户输入的不是quit

// 把内容拷贝到写入文件缓冲区中

strcpy(buf_write, buf_read);

// 打印提示信息

char output_message[100] = "output some words : ";

write(STDOUT_FILENO, output_message, sizeof(output_message));

// 将信息显示在屏幕上

write(STDOUT_FILENO, buf_write, strlen(buf_write));

}

return 0;

}

2、创建并编写文件makefile:

.SUFFIXES:.c .o

CC=gcc

SRCS=main.c

OBJS=$(SRCS:.c=.o)

EXEC=main

start: $(OBJS)

$(CC) -o $(EXEC) $(OBJS)

@echo "-----------------------------OK-----------------------"

.c.o:

$(CC) -Wall -o $@ -c $<

clean:

rm -rf $(EXEC) $(OBJS)

3、编译并执行程序:

[negivup@negivup mycode]$ make

gcc -Wall -o main.o -c main.c

gcc -o main main.o

-----------------------------OK-----------------------

[negivup@negivup mycode]$ main

input some words : 123

output some words : 123

input some words : 234

output some words : 234

input some words : quit

程序实现了,没有使用scanf和printf,从键盘接收用户输入和将用户输入的信息打印到屏幕上。

---------------------

作者:洋羽翔_hisen

来源:CSDN

原文:/sinat_25457161/article/details/48548231

版权声明:本文为博主原创文章,转载请附上博文链接!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
扩展阅读