草庐IT

linux - 如何在 bash 脚本中使用文件描述符 3 中的 "read"进行读取?

http://bash.cyberciti.biz/file-management/shell-script-to-simulate-unix-more-command/#!/bin/bash#Writeashellscriptlikeamorecommand.Itaskstheusername,the#nameofthefileoncommandpromptanddisplaysonlythe15linesof#thefileatatime.#-----------------------------------------------------------------------

linux - 为什么 "echo foo | read a ; echo $a"没有按预期工作?

我可以在FreeBSD、GNU/Linux和Solaris下使用各种shell重现该问题。这让我挠头了一个多小时,所以我决定在这里发布问题。 最佳答案 由于管道,read在其自己的子shell中执行。echofoo|whilereada;doecho$a;done会按照您的期望去做。 关于linux-为什么"echofoo|reada;echo$a"没有按预期工作?,我们在StackOverflow上找到一个类似的问题: https://stackoverfl

linux - USB 设备枚举失败 : "device descriptor read/64, error -32"

我正在开发一个带有ST微Controller的ttyACM设备,使用相同的代码,我的主机有时可以成功枚举它(如下),但有时它只会转储以下消息。错误-32是什么意思?[枚举失败]usb1-2.1:newfullspeedUSBdevicenumber62usingehci_hcdusb1-2.1:devicedescriptorread/64,error-32usb1-2.1:devicedescriptorread/64,error-32usb1-2.1:newfullspeedUSBdevicenumber63usingehci_hcdusb1-2.1:devicedescripto

c++ - read(2) 不在 EOF 时可以返回零吗?

根据read(2)的手册页,它仅在到达EOF时返回零。但是,这似乎是不正确的,它有时可能会返回零,可能是因为文件还没有准备好被读取?在从磁盘读取文件之前,我是否应该调用select()来查看它是否准备就绪?注意nBytes是:1,445,888一些示例代码:fd_setreadFdSet;timevaltimeOutTv;timeOutTv.tv_sec=0;timeOutTv.tv_usec=0;//Let'sseeifwe'llblockontheread.FD_ZERO(&readFdSet);FD_SET(fd,&readFdSet);intselectReturn=::sel

c - read() 在套接字编程中不阻塞

我有一个服务器,每5秒向客户端发送一次数据。我希望客户端在read()上阻塞,直到服务器发送一些数据然后打印它。我知道默认情况下read()是阻塞的。我的问题是我的客户没有阻塞read()。这很奇怪,这似乎不是一个正常问题。我的代码在无限循环中打印“Nothingcameback”。我在一台linux机器上,用c编程。我的代码片段如下。请指教。while(1){n=read(sockfd,recvline,MAXLINE);if(n>0){recvline[n]=0;if(fputs(recvline,stdout)==EOF)printf("fputserror");}elseif(

c++ - 在不调用 read() 的情况下确定管道的大小

我需要一个名为SizeOfPipe()的函数,它应该返回管道的大小-我只想知道管道中有多少数据,而不是实际从管道本身读取数据。我认为下面的代码可以工作:fseek(pPipe,0,SEEK_END);*pBytes=ftell(pPipe);rewind(pPipe);但是fseek()对文件描述符不起作用。另一种选择是读取管道然后将数据写回,但希望尽可能避免这种情况。有什么建议吗? 最佳答案 根据你的unix实现,ioctl/FIONREAD可能会成功err=ioctl(pipedesc,FIONREAD,&bytesAvaila

Linux文件系统只读Read-only file system的解决方法

df-hdf-T命令查看这个是最简单的命令,文件系统类型在Type列输出。只可以查看已经挂载的分区和文件系统类型。如下所示:df-T/dev/sda1设备unmount面两条命令分别通过设备名和挂载点卸载文件系统,同时输出详细信息:umount-v/dev/sda1通过设备名卸载或者umount-v/data2通过挂载点卸载问题1:执行以下命令,查看删除文件所在目录的挂载方式:如果结果显示挂载方式为ro,则根因为挂载方式为只读导致。#mount|grep挂载点mount|grepdata2在不重启的情况下可以以读写方式重新进行挂载,执行:mount-oremount,rw/data2问题2执行

安卓 2.3 : Read-Only file system stuck

关闭。这个问题不符合StackOverflowguidelines。它目前不接受答案。这个问题似乎与aspecificprogrammingproblem,asoftwarealgorithm,orsoftwaretoolsprimarilyusedbyprogrammers无关。如果您认为该问题与anotherStackExchangesite上的主题相关,您可以发表评论以说明可以在哪里回答该问题。关闭9年前。Improvethisquestion嗨。我有一个LG-OptimusHUBE510Android设备。两周前,我对我的设备进行了root操作以访问内部存储并更改了一些文件(例

linux - 为什么sys_read系统调用检测到换行就结束?

我是汇编的初学者(使用nasm)。我正在通过大学类(class)学习汇编。我试图了解sys_readlinux系统调用在被调用时的行为。具体来说,sys_read在读取新行或换行符时停止。根据我所受的教导,这是真的。这onlinetutorialarticle也证实了事实/主张。Whensys_readdetectsalinefeed,controlreturnstotheprogramandtheusersinputislocatedatthememoryaddressyoupassedinECX.我检查了linux程序员手册中的sys_read调用(通过“man2read”)。它没

c - 来自文件系统的 "short read",什么时候会发生?

很明显,通常read(2)系统调用返回的字节数少于要求读取的字节数。然而,相当多的程序假设在处理本地文件时,read(2)返回的结果永远不会少于请求的内容(当然,除非文件更短)。所以,我的问题是:在Linux上,如果从打开的文件中读取并且没有遇到EOF,并且正在读取的量最大为几千字节,在哪些情况下read(2)返回的返回值可能小于请求的值?一些猜测:接收到的信号能否像这样中断读取,但不会使其失败?不同的文件系统会影响这种行为吗?jffs2有什么特别之处吗? 最佳答案 POSIX.1-2008states:Thevaluereturn