使用dup2将标准输入重定向到文件,按delete键时出现^H
使用dup2将标准输入重定向到文件,按delete键时出现^H,但是执行linux命令时输入delete会把前一个字符删除了。请问是什么原因?
代码如下
运行效果截图:

代码如下
#include <unistd.h>
#include <stdio.h>
#include <errno.h>
#include <fcntl.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#define BUFFER_SIZE 1024
int main(int argc,char **argv)
{
int fd;
char buffer[BUFFER_SIZE];
if(argc!=2)
{
fprintf(stderr,"Usage:%s outfilename\n\a",argv[0]);
exit(1);
}
if((fd=open(argv[1],O_WRONLY|O_CREAT|O_TRUNC,S_IRUSR|S_IWUSR))==-1)
{
fprintf(stderr,"Open %s Error:%s\n\a",argv[1],strerror(errno));exit(1);
}
if(dup2(fd,STDOUT_FILENO)==-1)
{
fprintf(stderr,"Redirect Standard OutError:%s\n\a",strerror(errno));
exit(1);
}
fprintf(stderr,"Now,please input string");
fprintf(stderr,"(To quit use CTRL+D)\n");
while(1)
{
fgets(buffer,BUFFER_SIZE,stdin);
if(feof(stdin))break;
write(STDOUT_FILENO,buffer,strlen(buffer));
}
exit(0);
}
运行效果截图:

...全文
相关推荐
删除Table表中的重复行的方法
OVER (PARTITION BY Col1, Col2 ORDER BY Col1) AS rn FROM Dup1 ) DELETE DupsD WHERE rn > 1; ``` 或者,不使用CTE
四种SQL语句删除重复记录的方法
2. **游标法**:适合小数据量的表,但对大数据量表不推荐使用。3. **存储过程法**:适合频繁执行删除操作的场景,能够实现灵活的参数化操作。4.
《Oracle数据库应用》-练习题2.pdf
DELETE FROM S WHERE 年龄>60语句会删除S表中所有年龄大于60岁的记录。9. 删除视图使用DROP VIEW命令。10. ORACLE数据导出使用exp命令。11.
Velocity Keyboard Codes 20161116.pdf
#### 使用场景了解这些按键的键值及其功能对于配置Wavelink Velocity环境下的应用程序非常有用,特别是在需要自定义按键映射或者进行自动化测试时。
oracle 删除重复数据
**删除重复数据**:在删除重复数据时,要注意效率。一个低效的方法是直接使用`IN`子句,而高效的方式是先创建一个临时表存储重复数据,然后删除原表中的记录。


