char buf[100]; ... read(fp,buf,sizeof(buf)); printf("%s\n",buf); ---------------------------------------------- printf("%s\n",buf);为什么可以运行。 buf的最后一个字节不是'\0'啊。
我看一本书上说write一个128字节的数据,调用read时,可能第一次接受10字节,第二次接收100字节,第三次接受18字节。所以必须重复的调用read。 但服务端write("hello"); 后, 如果用 while((n=read(buf))>0) { printf(buf); } 接收完服务端发过来的数据后,read就会由于没有数据到来而阻塞,就不能往下继续执行了。 怎么才能让read接受完write传过来的数据后就跳出while?
今天在freebsd下调用read函数 可是编译后不知道为什么不能运行 运行”./a.out test“ x系统就卡在那里了
所要读取的test文件就是普通的文本文件。
编译环境:gcc
运行环境:freebsd 7.0
各位帮帮忙看看.
代码:
#include
代码: [code] int main(void) { int fd,size; char s[]="123456789012345adfadfadfad67890adfadfadf",buffer[10]; if((fd=open("aaa.txt",O_CREAT|O_TRUNC|O_WRONLY))<0) { perror("open aaa.txt"); exit(EXIT_FAILURE); } write(fd,s,20); if(close(fd)<0) { perror("close"); exit(EXIT_FAILURE); }...
文件内容:
程序
$line=
#!/usr/bin/perl
open (FILE, " ..\\test\\f.txt");
@b=
我按书上的例子试了一下,可以用下面这样的代码copy一个二进制文件[code]while(read(FROM,$buf,LENGTH)){ print TO $buf }[/code]read函数是从文件句柄中读取LENGTH长度的数据,并赋给 $buf .返回读取字节的数量。为什么上面的代码不是重复读取文件的开头 LENGTH 长度的数据,而是一段一段将文件读到最后呐? 若想重复读取文件开头指定长度的数据,应该怎么做。
求助了 关于一个socket通讯的程序 监听一个端口后 调用 Num = read(Socket_id, Buf_head, 7)) Num == 0时,是什么情况阿? 关于这个read函数的返回值,我 搜也搜不到 哪位能不能告诉我啊?
用read函数从打开文件中读数据。 #include ssize_t read(int filedes, void *buff, size_t nbytes) ; 返回:如read成功,则返回读到的字节数。如已到达文件的尾端,则返回0。 有多种情况可使实际读到的字节数少于要求读字节数: • 读普通文件时,在读到要求字节数之前已到达了文件尾端。 • 当从终端设备读时,通常一次最多读一行。 • 当从网络读时,网络中的缓冲机构可能造成返回值小于所...