当前位置: 首页 > news >正文

专业的免费建站软件开发工程师证

专业的免费建站,软件开发工程师证,网页设计html代码大全p,网站开发需求规格说明书进程的标准输入输出 当主进程fork或exec子进程,文件描述符被继承,因此0,1,2句柄也被继承,从而使得telnet等服务,可以做到间接调用别的shell或程序。比如如果是远程登录使用的zsh,那么其会重定向到相应的pts $ ps|gre…

进程的标准输入输出

当主进程fork或exec子进程,文件描述符被继承,因此0,1,2句柄也被继承,从而使得telnet等服务,可以做到间接调用别的shell或程序。比如如果是远程登录使用的zsh,那么其会重定向到相应的pts

$ ps|grep zsh234671 pts/4    00:00:03 zsh
$ cd /proc/234671/fd
$ ls -la
total 0
dr-x------ 2 wsl wsl  0 Jul  6 15:13 .
dr-xr-xr-x 9 wsl wsl  0 Jul  6 15:13 ..
lrwx------ 1 wsl wsl 64 Jul  6 15:13 0 -> /dev/pts/4
lrwx------ 1 wsl wsl 64 Jul  6 15:13 1 -> /dev/pts/4
lrwx------ 1 wsl wsl 64 Jul  6 15:13 2 -> /dev/pts/4
...

进程在转为守护进程时,可以经0,1,2句柄重定向到/dev/null,做到不输出任何信息。

可以使用dump2可以实现重定向功能:
```c
fd = open("./test.txt",O_CREAT|O_RDWR, S_IRWXU );  
dup2(fd, STDOUT_FILENO); //将STDOUT_FILENO文件描述符 指向 fd文件描述符 指向的文件;即将标准输出 重定向到fd指向的文件‘
//该程序就能将hahahha写在指定的test.txt文件中了
printf("hahahahaha");
close(fd);

备注:
STDOUT_FILENO、STDIN_FILENO是int型的文件描述符,是非负整数,属于没有buffer的I/O;一般定义为0, 1, 2 ,在<unistd.h>定义。

/* Standard file descriptors.  */
#define	STDIN_FILENO	0	/* Standard input.  */
#define	STDOUT_FILENO	1	/* Standard output.  */
#define	STDERR_FILENO	2	/* Standard error output.  */

open()系统函数,返回的是目前未被占用的最小的文件描述符
文件描述符对应的函数是open() read() write() close()等;

stdout stdin stderr 是FILE 类型的文件指针;属于标准I/O,在<stdio.h>。
所以可以使用:fprintf(stdout, “hahahah”);
fopen()库函数,返回的是FILE 类型的文件指针
FILE类型的文件指针,对应的函数是 fopen() fgets() fputs() fprintf() fclose() fgetc() fputc()等
可以写一个信号处理函数,将输出在不同终端间切换。或者通过重定向标准输出+无名管道的方式,实现将子进程的输出用more显示。

终端属性

通过终端属性,可以禁用回显,

#include <stdio.h>
#include <stdlib.h>
#include <termios.h>
#include <unistd.h>int main() {int fd = STDIN_FILENO; // 使用标准输入作为终端设备的文件描述符// 获取当前终端属性struct termios old_attr;if (tcgetattr(fd, &old_attr) == -1) {perror("tcgetattr");exit(EXIT_FAILURE);}// 备份旧的终端属性struct termios new_attr = old_attr;// 修改终端属性new_attr.c_lflag &= ~ECHO; // 禁用回显// 设置新的终端属性if (tcsetattr(fd, TCSANOW, &new_attr) == -1) {perror("tcsetattr");exit(EXIT_FAILURE);}// 读取用户输入并打印char input[100];printf("Enter your password: ");fgets(input, sizeof(input), stdin);printf("Your password: %s", input);// 恢复之前的终端属性if (tcsetattr(fd, TCSANOW, &old_attr) == -1) {perror("tcsetattr");exit(EXIT_FAILURE);}return 0;
}

使用stty -echo就能关闭回显,再使用stty echo打开
使用getty打开一个终端
使用tty查看当前是哪个终端。

pi@link:/boot$ tty
/dev/ttyS0
pi@link:/boot$ sudo su
[sudo] password for pi:
root@link:/boot# tty
/dev/pts/0
root@link:/boot# who
pi       ttyS0        2024-04-23 22:05
pi       pts/0        2024-04-23 23:04

参考
linux 终端设置及读写

http://www.yayakq.cn/news/428507/

相关文章:

  • 大庆网站建设微信放在网站根目录
  • 南阳理工网站建设管理咨询公司如何开发客户
  • 医疗营销网站建设如何阿里网站建设
  • 大兴网站设计wordpress慕课网
  • 网站如何做才能被360收录wordpress网站换主题
  • 网站建设佰金手指科杰三网站开发语言 asp
  • 旅游网站前端建设论文网站建设排名北京
  • 图片网站 模板桂林市建设工程造价管理站网站
  • 网站开发如何入门商城网站开发费用
  • 网络营销网站策划云南网站开发报价
  • 做外贸网站有什么用wordpress 宅男猫源码
  • 做新年公告图片的网站宿迁房产网丫丫
  • 企业网站开发服务上海网站建设报价表
  • 回收类型网站如何做自贸区注册公司
  • 网站开发与网页后台开发现在可以做网站么
  • 闵行网站设计开发和发布网站的主要流程
  • 浙江网站建设公司地址做哪个外贸网站不用交费
  • 安徽省六安市建设工程信息网seo关键词优化外包公司
  • 深圳商城网站建设报价单wordpress企业站制作
  • 定西市建设网站费用IP网站登记
  • 网站代码字体变大洛阳市住房和城乡建设网站
  • vps服务器怎么创建多个网站网站建设职位有什么
  • 自己做网站要会什么软件下载公司网站建设费用如何做账
  • 运行一个网站的成本软件开发分工5个角色
  • 大题小做网站网站建设与管理行业发展情况
  • 网站建设业务员在哪里接单成都住建局官网站首页
  • 做网站开发服务商网站后台不能排版
  • 南宁企业网页设计一个网站如何做seo优化
  • 重庆网站建设求职简历c 做的网站怎么上传图片
  • 做网站的价钱创建网站需要多少钱