相关讨论
char buf[100];
...
read(fp,buf,sizeof(buf));
printf("%s\n",buf);
----------------------------------------------
printf("%s\n",buf);为什么可以运行。 buf的最后一个字节不是'\0'啊。
by
fasws
-
C/C++
-
2009-04-06 18:58:07 阅读(1265) 回复(6)
我看一本书上说write一个128字节的数据,调用read时,可能第一次接受10字节,第二次接收100字节,第三次接受18字节。所以必须重复的调用read。
但服务端write("hello"); 后,
如果用
while((n=read(buf))>0)
{
printf(buf);
}
接收完服务端发过来的数据后,read就会由于没有数据到来而阻塞,就不能往下继续执行了。
怎么才能让read接受完write传过来的数据后就跳出while?
by
ifosn
-
C/C++
-
2008-11-12 23:23:27 阅读(5312) 回复(7)
今天在freebsd下调用read函数 可是编译后不知道为什么不能运行 运行”./a.out test“ x系统就卡在那里了
所要读取的test文件就是普通的文本文件。
编译环境:gcc
运行环境:freebsd 7.0
各位帮帮忙看看.
代码:
#include
#include
int main(int argc,int * argv[]){
int fd;
int num;
char text[100];
if(fd=open(argv[1],O_RDONLY)==-1){
perror(" error in open file sk.c\n");
retur...
by
sofen
-
C/C++
-
2008-03-24 12:34:06 阅读(2468) 回复(15)
代码:
[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=;;print$line,"\n" ;
seek(FILE,0,0);
read(FILE,$seq,5,0); print $seq,"\n";
read(FILE,$seq,5,3); print $seq,"\n";
read(FILE,$seq,5,-3); print $seq,"\n";
结果:
0123456789abcdefgh
01234
01256789
01256abcde
我认为应该是
0123456789abcdefgh
01234 (前5个)
89abc (跳过3个,读5个)
abcdef (倒退3个,读5个)
我用的winxp,怎么才能...
#!/usr/bin/perl
open (FILE, " ..\\test\\f.txt");
@b=;; print @b;
seek(FILE,0,0);
while( !eof (FILE) )
{
read (FILE ,$a,5, $index );
print FILE1 "*" , $a,"\n"; print "*" , $a,"\n";
$index+=5;
}
close FILE;
执行结果:
aaaaagggghhhhhkkkkk123456789
*aaaaa
*aaaaaggggh
*aaaaagggghhhhhk
*aaaaagggghhhhhkkkkk1
*aaaaagggghhhhhkkkkk123456
*aaaaagggghhhhhkkkkk123456789
可是...
我按书上的例子试了一下,可以用下面这样的代码copy一个二进制文件[code]while(read(FROM,$buf,LENGTH)){ print TO $buf }[/code]read函数是从文件句柄中读取LENGTH长度的数据,并赋给 $buf .返回读取字节的数量。为什么上面的代码不是重复读取文件的开头 LENGTH 长度的数据,而是一段一段将文件读到最后呐?
若想重复读取文件开头指定长度的数据,应该怎么做。
read()函数在读终端和普通文件的过程有什么差别,我弄的不是很清楚。
by
dr.q
-
C/C++
-
2003-08-28 12:34:03 阅读(949) 回复(0)
#include
#include
#include
int main(void)
{
char buf[128];
int fdsrc;
int numbytes;
if((fdsrc = open("./fdread.c", O_WRONLY)) < 0)
{
printf("srcFd open err");
return -1;
}
numbytes=read(fdsrc,buf,10);
printf("readLen:%d\n",numbytes);
printf("errno:%d",errno);
close(fdsrc);
return 0;
}
求助了
关于一个socket通讯的程序
监听一个端口后 调用
Num = read(Socket_id, Buf_head, 7))
Num == 0时,是什么情况阿?
关于这个read函数的返回值,我 搜也搜不到
哪位能不能告诉我啊?