C语言 write和read语句的基本用法

C语言write和read语句的基本用法... C语言 write和read语句的基本用法 展开
 我来答
吉祥二进制
高粉答主

推荐于2016-10-14 · 科技改变生活,生活改变科技。
吉祥二进制
采纳数:33926 获赞数:84574

向TA提问 私信TA
展开全部

  1、函数名: write

  表头文件:#include<unistd.h>

  定义函数:ssize_t write (int fd,const void * buf,size_t count);

  函数说明:write()会把指针buf所指的内存写入count个字节到参数fd所指的文件内。当然,文件读写位置也会随之移动。

  返回值:如果顺利write()会返回实际写入的字节数。当有错误发生时则返回-1,错误代码存入errno中。

  错误代码:

  EINTR 此调用被信号所中断。

  EAGAIN 当使用不可阻断I/O 时(O_NONBLOCK),若无数据可读取则返回此值。

  EBADF 参数fd非有效的文件描述词,或该文件已关闭。

  程序例:

#include<stdlib.h>
#include<unistd.h>
#include<stdio.h>
#include<string.h>
#include<fcntl.h>
#include<errno.h>
intmain(void)
{
inthandle;
charstring[40];
intlength,res;
/*
Createafilenamed"TEST.$$$"inthecurrentdirectoryandwrite
astringtoit.If"TEST.$$$"alreadyexists,itwillbeoverwritten.
*/
if((handle=open("TEST.$$$",O_WRONLY|O_CREAT|O_TRUNC,
S_IREAD|S_IWRITE))==-1)
{
printf("Erroropeningfile.\n");
exit(1);
}
 
strcpy(string,"Hello,world!\n");
length=strlen(string);
 
if((res=write(handle,string,length))!=length)
{
printf("Errorwritingtothefile.\n");
exit(1);
}
 
printf("Wrote%dbytestothefile.\n",res);
close(handle);
return0;
}
 
structxfcb{
charxfcb_flag;/*Contains0xfftoindicatexfcb*/
charxfcb_resv[5];/*ReservedforDOS*/
charxfcb_attr;/*Searchattribute*/
structfcbxfcb_fcb;/*Thestandardfcb*/
};

  2、函数名: read

  表头文件:#include<unistd.h>

  定义函数:ssize_t read(int fd,void * buf ,size_t count);

  函数说明:read()会把参数fd 所指的文件传送count个字节到buf指针所指的内存中。若参数count为0,则read为实际读取到的字节数,如果返回0,表示已到达文件尾或是无可读取的数据,此外文件读写位置会随读取到的字节移动。

  附加说明:如果顺利read()会返回实际读到的字节数,最好能将返回值与参数count 作比较,若返回的字节数比要求读取的字节数少,则有可能读到了文件尾、从管道(pipe)或终端机读取,或者是read()被信号中断了读取动作。当有错误发生时则返回-1,错误代码存入errno中,而文件读写位置则无法预期。

  错误代码:

  EINTR 此调用被信号所中断。

  EAGAIN 当使用不可阻断I/O 时(O_NONBLOCK),若无数据可读取则返回此值。

  EBADF 参数fd 非有效的文件描述词,或该文件已关闭。

  程序例:

#include
#include
#include
#include
#include
#include
int main(void)
{
void *buf;
int handle, bytes;
buf = malloc(10);
/*
Looks for a file in the current directory named TEST.$$$ and attempts
to read 10 bytes from it. To
}
if ((bytes = read(handle, buf, 10)) == -1) {
printf("Read Failed.\n");
exit(1);
}
else {
printf("Read: %d bytes read.\n", bytes);
}
return 0;

  

zx1996915
推荐于2017-12-16 · TA获得超过334个赞
知道小有建树答主
回答量:179
采纳率:0%
帮助的人:161万
展开全部
你说的是pascal语言吧
c语言读入数据用是scanf或printf
c++还可以用cin或cout
scanf("数据类型",&要读入的变量);
printf("数据类型和格式",要输出的变量);
数据类型和变量定义的关键字有关
下面给几个例子
数据类型 变量定义的关键字
%d int
%ld long (或__int64)
%f float
%lf double
%c char(一个字符)
%s char(字符数组)
输出的时候有一些控制字符
/n 回车
/b 退格
输出小数时

printf("%.nf"s);(n为数字)
表示输出小数点后几位
还有对齐的输出
printf("%nf",s);(n为数字)
n小于0时左对齐
n大于0时右对齐
总共占n位
int t=23;
printf("%3d",t);
结果是 23(前面有一个空格)
int t=23;
printf("%-3d",t);
结果是23 (后面有一个空格)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
云中海盗
推荐于2018-05-06 · 超过13用户采纳过TA的回答
知道答主
回答量:76
采纳率:100%
帮助的人:22.7万
展开全部
函数名: read
功 能: 从文件中读
用 法: int read(int handle, void *buf, int nbyte);
程序例:

#include <stdio.h>
#include <io.h>
#include <alloc.h>
#include <fcntl.h>
#include <process.h>
#include <sys/stat.h>

int main(void)
{
void *buf;
int handle, bytes;

buf = malloc(10);

/*
Looks for a file in the current directory named TEST.$$$ and attempts
to read 10 bytes from it. To use this example you should create the
file TEST.$$$
*/
if ((handle =
open("TEST.$$$", O_RDONLY | O_BINARY, S_IWRITE | S_IREAD)) == -1)
{
printf("Error Opening File/n");
exit(1);
}

if ((bytes = read(handle, buf, 10)) == -1) {
printf("Read Failed./n");
exit(1);
}
else {
printf("Read: %d bytes read./n", bytes);
}
return 0;
}

函数名: write
功 能: 写到一文件中
用 法: int write(int handel, void *buf, int nbyte);
程序例:

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <io.h>
#include <string.h>

int main(void)
{
int handle;
char string[40];
int length, res;

/*
Create a file named "TEST.$$$" in the current directory and write
a string to it. If "TEST.$$$" already exists, it will be overwritten.
*/

if ((handle = open("TEST.$$$", O_WRONLY | O_CREAT | O_TRUNC,
S_IREAD | S_IWRITE)) == -1)
{
printf("Error opening file./n");
exit(1);
}

strcpy(string, "Hello, world!/n");
length = strlen(string);

if ((res = write(handle, string, length)) != length)
{
printf("Error writing to the file./n");
exit(1);
}
printf("Wrote %d bytes to the file./n", res);

close(handle);
return 0;
}

参考资料: http://www.fzs8.net/C_Function/index_7.html

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式