- 2024-10-16stdin,stdout和STDIN_FILENO,STDOUT_FILENO
stdin,stdout 类型为 FILE*。使用 FILE* 的函数主要有:fopen、fread、fwrite、fclose等,基本上都以 f 开头。stdin 等属于标准I/O,高级的输入输出函数,定义在 <stdio.h>。fileno() 函数可以用来取得 stream 指定的文件流所使用的文件描述符printf("%d\n",fileno(st
- 2024-09-24使用dup2实现一个简单的命令重定向
以下是一个echo命令的的重定向的简单实现,大家可以把他改成main函数在执行,一样的,然后我们需要关注的部分就是代码中标有注释的代码块#include"command.h"int_echo(char*argv[]){ intargc=0; for(char**ptr=argv;*ptr!=NULL;ptr++) argc++; if(argc<2||
- 2024-08-02Linux:守护进程(进程组、会话和守护进程)
守护进程(1)What(什么是守护进程)在了解守护进程的同时,我们有必要介绍一下进程组和会话的概念,因为进程组和会话在创建守护进程的过程中不可或缺守护进程:本质就是一个后台进程,不依赖于具体终端、生命周期比较长进程组:进程的集合,该集合有一个ID,被称为“进程组ID“,此外,
- 2023-12-25修改buffersize测试stdio的读写效率
#include<stdio.h>#include<stdlib.h>#include<unistd.h>intmain(intargc,char**argv){if(argc<2){fprintf(stderr,"faildUsage...\n");exit(1);}intbuffersize=atoi(argv[1]);cha
- 2023-10-17Clion+STM32配置环境
Clion+STM32配置环境下载安装下载Clion,具体步骤省略https://www.jetbrains.com/clion/download/Clion官方的教程网址如下https://www.jetbrains.com/help/clion/embedded-development.html需要下载的东西有openocd和GNUARM工具链openocd:https://gnutoolchains.com/arm-eab
- 2023-09-30NO.6 Linux系统编程-备忘
一、文件I/OFILE*fp指针(指向的结构体有三个重要的成员)文件描述符:通过文件描述可以找到文件的inode,通过inode可以找到对应的数据块文件指针:读和写共享一个文件指针,读或者写都会引起文件指针的变化文件缓冲区:读或者写会先通过文件缓冲区,主要目的是为了减少对
- 2023-08-08异步通知example+fcntl
1,异步通知异步通知的意思是:一旦设备就绪,则主动通知应用程序,这样应用程序根本就不需要查询设备状态,这一点非常类似于硬件上“中断”的概念,比较准确的称谓是“信号驱动的异步I/O”。信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中
- 2023-08-06error: ‘strdup’ was not declared in this scope; did you mean ‘StrDup’ fileno
{https://news.68idc.cn/buildlang/20150627387345.html}{函数名:strdup;功能:将串拷贝到新建的位置处;用法:char*strdup(char*str);strdup属于GNUC++的函数,不是标准(std)C++的函数,需要修改参数:把-std=c++11修改为-std=gnu++0x,即可.}函数名:strdup;功
- 2023-08-06非阻塞式 IO
非阻塞式IO套接字默认是阻塞的,分为以下4类:输入操作:read、readv、recv、recvfrom、fecvmsg,对于面向流的TCP可使用自定义的readn函数或MSG_WAITALL标志指定等到某个固定数目的数据可读为止,没有数据可读时非阻塞IO立即返回一个EWOULDBLOCK错误输出操作:write、writev、send、send
- 2023-07-19Linux反弹shell的简单复现
前情提要本文是对https://blog.csdn.net/cosmoslin/article/details/121269178这篇文章的一个简单复现,具体原理在本文中不怎么会提到。师傅如果要验证的话,注意将下文的IP等改为自己对应的IP,还有其他的因素可能也要根据自己的情况做点修改。然后因为靶机或环境配置可能不同,各位师
- 2023-02-25IO多路复用
1.Selector当执行IO读写操作时,通过先将数据放入缓冲区,然后由一个统一selelctor来监控缓冲区,等缓冲区就绪后会通知我们的程序publicstaticvoidmain(String[]args)th
- 2023-02-08linux无阻塞输入
//头文件#include<sys/ioctl.h>#include<sys/io.h>ioctl(STDIN_FILENO,FIONBIO,&attr);//清除阻塞输入,attr为1,这时读取不能使用getchar或scanf,如果没数据会直接返回len
- 2022-09-181. 系统调用 I/O 文件描述符 文件指针
内核是如何处理系统调用每个系统调用被赋予了一个系统调用号在i386平台上,执行一个系统调用是通过int0X80指令完成的eax存放系统的调用号ebx,ecx,edx,esi,edi存储系统调用
- 2022-08-31轻量级SpringBoot Office文档在线预览框架
框架简介介绍:基于开源项目KkFileView源码提取出,封装成仅用于Office文档预览(格式转换)功能的一个通用组件;原理是把Word转成PDF,PPT转成PDF,Excel转成HTML;利用浏览