Linux下,固定文件句柄012,输入重定向,输出重定向,覆盖定向与追加定向,无用命令信息的去除方法

Linux下,固定文件句柄012,输入重定向,输出重定向,覆盖定向与追加定向,无用命令信息的去除方法

O、重定向的作用:
Linux下的命令是实时的,在一些条件下,程序员不能守在机器旁边查看结果,需要想办法将系统的某些信息记录下来,这时用到重定向。

一、固定文件句柄012:
1、文件句柄FD:
file descriptors,文件描述符,文件句柄。进程使用文件句柄来管理打开的文件。
FD是访问文件的标识,即链接文件,使用句柄代替文件就省去了冗长的绝对路径。

2、文件句柄是个数字,范围从0-255,

3、其中0,1,2三个数字非常特别,
0代表标准输入,程序员的指令通过键盘键入,stdin,通过0号FD进入程序,从文件-》数字-》程序
1代表标准输出,输出到显示器终端(/dev/pts/num)上,stdout
2代表标准错误信息,输出到显示器终端(/dev/pts/num)上,stderr
3+是其他文件,可读可写。

二、正确信息输出重定向:
1、正确信息输出重定向,将正确信息输出到指定文件:
例如简单的命令ll > handsomedzl

这个命令是将ll输出的正确信息重定向到文件handsomedzl中,而不是输出到终端

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Windows操作系统中,可以使用匿名管道定向实现输出cmd命令执行结果。具体步骤如下: 1. 创建一个匿名管道,使用CreatePipe函数实现。 2. 创建一个子进程,使用CreateProcess函数实现。在子进程中,将管道的输出定向到标准输出。 3. 在父进程中,使用ReadFile函数读取管道中的数据,即子进程输出的结果。 下面是一个示例代码: ``` #include <windows.h> #include <stdio.h> int main() { HANDLE hReadPipe, hWritePipe; SECURITY_ATTRIBUTES saAttr; PROCESS_INFORMATION piProcInfo; STARTUPINFO siStartInfo; BOOL bSuccess; DWORD dwRead; // 创建匿名管道 saAttr.nLength = sizeof(SECURITY_ATTRIBUTES); saAttr.bInheritHandle = TRUE; saAttr.lpSecurityDescriptor = NULL; if(!CreatePipe(&hReadPipe, &hWritePipe, &saAttr, 0)) { printf("CreatePipe failed\n"); return 1; } // 创建子进程 ZeroMemory(&piProcInfo, sizeof(PROCESS_INFORMATION)); ZeroMemory(&siStartInfo, sizeof(STARTUPINFO)); siStartInfo.cb = sizeof(STARTUPINFO); siStartInfo.hStdError = hWritePipe; siStartInfo.hStdOutput = hWritePipe; siStartInfo.dwFlags |= STARTF_USESTDHANDLES; bSuccess = CreateProcess(NULL, "ipconfig", NULL, NULL, TRUE, 0, NULL, NULL, &siStartInfo, &piProcInfo); if(!bSuccess) { printf("CreateProcess failed\n"); return 1; } // 读取子进程输出的结果 CHAR chBuf[1024]; ZeroMemory(chBuf, sizeof(chBuf)); for (;;) { bSuccess = ReadFile(hReadPipe, chBuf, sizeof(chBuf), &dwRead, NULL); if(!bSuccess || dwRead == 0) break; printf("%s", chBuf); ZeroMemory(chBuf, sizeof(chBuf)); } // 关闭句 CloseHandle(hReadPipe); CloseHandle(hWritePipe); CloseHandle(piProcInfo.hProcess); CloseHandle(piProcInfo.hThread); return 0; } ``` 上述代码中,使用了ipconfig命令作为示例,可以根据实际需求替换为其他命令。运行程序后,会输出ipconfig命令的执行结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值