展开

关键词

Linux--readdir

作用 在Linux中, readdir是常用来遍历文件夹下的文件 使用方法 通常readdir都是与opendir配合使用.

55820

Linux--strtol与strtoll

背景 在使用strtol的过中,发现在部分手机上读取字符串中的地址出现问题,导致在使用So的过中出现Crash。

1.3K20
  • 广告
    关闭

    腾讯云+社区系列公开课上线啦!

    Vite学习指南,基于腾讯云Webify部署项目。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux--include语法

    背景 在译So的时候,Cmake在头文件预处理的过中报错。 这种方式适用于用户自定义的序,它会首先在当前文件所在的目录下进行查找,然后再在系统目录下进行查找。 当头文件名包含x/*y,该*y并不代表转义字符或者正则表达式,头文件名就是简单的文件名。

    44700

    linux 初体验

    Linux译 c 语言文件。 打开 vim 辑器 (没有就用 vi, 或者先安装 vimsudo apt-get install vim) 1 $ vim 辑文件 打开文件辑器之后辑文件 image.png 首先按Esc 再:进入末行命令 再保存为 hello.c 文件后退出 1 2 : w hello.c : q 打开目录看看生成的文件 1 $ ls 译生成可执行文件并执行 1 2 $ gcc hello.c

    7130

    Linux--地址计算

    背景 在学习Matrix的ELF Hook的过中,发现在查找Library基址指针的时候,对于指针的运算有一些疑惑,特此记录。

    29600

    Linux--文件操作

    有三个文件描述符是在序运行前就已经打开的: 文件描述符 用途 POSIX名称 stdio流 0 标准输入 STDIN_FILENO stdin 1 标准输出 STDOUT_FILENO stdout O_CREAT 打开文件,如果文件不存在则创建文件 创建文件时会使用Mode参数与Umask配合设置文件权限 O_EXCL 如果已经置O_CREAT且文件存在,则强制open()失败 可以用来检测多个进之间创建文件的原子操作 进与文件表、i-node表的关系 上图画出了fd与对应的文件i-node之间的关系 多进中的文件描述符可能指向同一个文件 同进中的不同文件描述符可能指向同一个文件 多个不同偏移量的文件指针可能指向同一个文件

    33020

    Linux--指针的++操作

    背景 在学习ELF文件的过中,看到Matrix中有类似于如下的代码来遍历ELF文件的e->phdr序头表的内容。 elf_file->elf_ehdr->e_phnum:序头表中段的总数 elf_file->elf_ehdr->e_phentsize:序头表中每个Entry的大小 问题1:为何elf_file 问题2:在for循环中,phdr_start_addr++为何能找到序头表中的下一个段结构呢? 而这个计算,都是在译期间译器已经计算好了的。 (void *)的计算 C和C++中不允许(void *)pointer与整数相加,否则在译的时候会报错误: arithmetic on a pointer to void 原因是C和C++禁止在(void

    41330

    Linux(云端服务器)

    通常,我们在学习嵌入式的时候,需要在本地搭建一个交叉开发环境,一般就是使用VMware创建一台虚拟机,然后在虚拟机里面安装Ubuntu/Linux系统。 但有时我们希望直接使用Ubuntu/Linux系统而不需要经过虚拟机,这该怎么办呢? 至少有两种办法,可以使得我们不需要虚拟机,就可以进行Linux开发,甚至是搭建嵌入式交叉译环境,一种是使用云端服务器,一种是使用windows下的GNU工具包。本文讨论第一种情况。 使用云端服务器,可以快捷地构建Linux环境,以阿里云为例子,登录阿里云的官网www.aliyun.com,然后选择ECS,然后就可以根据需要来配置你的云端服务器了,以Ubuntu为例。 创建实例成功之后,在管理控制台中可以找到该实例,找到实例的公网IP,便可以使用secureCRT等远登录软件登录Ubuntu了。 ? 噹噹噹噹! 使用secureCRT登录云端Ubuntu啦: ?

    74420

    Linux(阻塞的概念)

    这个道理跟Linux下读取慢速设备(主要指管道和套接字)数据的情形非常相似,例如当我们在读取一个管道时,如果管道里面没有数据,那么我们什么都读不出来,于是就进入了所谓的“阻塞”状态了,说白了阻塞就是使得当前进或者线睡眠了的意思 其中,读者指的是对管道文件拥有读权限的进或线(注意不是正在读),写者指的是对管道文件拥有写权限的进或线(注意不是正在写)。

    47330

    Linux(文件描述符)

    Linux世界中,不可能没听过文件描述符这个概念,我们操纵任何设备的时候,几乎都要通过它来达成的,它究竟是何方神圣呢?随我描述符科学家来一探究竟。 首先,我们在Linux下打开文件用的都是如下代码: int fd = open(... ...); 当然有同学可能会说,有时也可以用fopen(),但是fopen()只是标准IO对系统IO的封装,归根结底还是使用

    53320

    Linux_Shell脚本练习题

    1,写shell脚本,计算1~100的和。 #! /bin/bash sum=0 for i in `seq 1 100`;do sum=$[$i+$sum] done echo $sum 2,写shell脚本,输入一个数字n并计算 read -p "input number:" n sum=0; for((i=0;i<=$n;i++)) do sum=`expr $sum + $i` done echo $sum 3,写 /bash for((i=1;i<20;i++)); do if(i<10);then jsj="jsj0$i"; else jsj="jsj$i"; fi useradd $jsj done 5,写 shell脚本,要求实现如下功能:当执行一个序的时候,这个序会让使用者选择boy或者girl;如果使用者输入B或者b时,就显示:He is a boy;如果使用者输入G或者g时,就显示:He is

    1.4K20

    Linux--获取当前时间

    背景 最近在重新译ijkplayer,并且希望能够打印出来各个阶段的时间,以便对于ijkplayer进一步调优 获取时间 Linux获取时间有多种方案,都需要添加#include <time.h> time

    1.8K30

    Linux--文件原子操作

    当多个进同时访问一个文件的时候,普通的write/read在执行的时候,无法保证操作的原子性,可能会导致文件被污染,达不到预期的结果。 任何一个需要多个函数调用的操作都不可能是原子操作,因为在两个函数调用间,内核可能会将进挂起执行另外的进

    67830

    Linux_Shell脚本练习题

    1,写shell脚本,计算1~100的和。 #! /bin/bash sum=0 for i in `seq 1 100`;do sum=$[$i+$sum] done echo $sum 2,写shell脚本,输入一个数字n并计算 read -p "input number:" n sum=0; for((i=0;i<=$n;i++)) do sum=`expr $sum + $i` done echo $sum 3,写 /bash for((i=1;i<20;i++)); do if(i<10);then jsj="jsj0$i"; else jsj="jsj$i"; fi useradd $jsj done 5,写 shell脚本,要求实现如下功能:当执行一个序的时候,这个序会让使用者选择boy或者girl;如果使用者输入B或者b时,就显示:He is a boy;如果使用者输入G或者g时,就显示:He is

    50260

    【读书笔记】linux艺术

    big program only when it is clear by demonstration that   nothing else will do. 6、吝啬原则:除非别无他法,否则,不要去写庞大的序 这点,跟上第5点差不多,以简洁为美,不要刻意去写庞大而复杂的序。 Generation: Avoid hand-hacking; write programs to write programs when you can. 14、生成原则:避免手工hack(直译了),尽可能序 或者如,极限大师 Kent Beck所说,先求运行,再求正确,最后求快。 不要一味的去考虑那些蝇头小利的所谓效率提升,尽量不要去过早优化,是一切万恶之根源。 黑客的起源和历史:1961-1995 从社会性而言,他们年轻,天资过人,几乎全是男性,献身达到痴迷的地步,决不墨守成规--后来被人们唤作“极客(geek)”。

    55290

    Linux之ICMP洪水攻击

    我的上一篇文章《Linux之PING的实现》里使用ICMP协议实现了PING的序,ICMP除了实现这么一个PING序,还有哪些不为人知或者好玩的用途? 要实现ICMP的洪水攻击,需要以下三项的知识储备: DOS攻击原理 ICMP的深入理解 原始套接字的技巧 一、ICMP洪水攻击原理 ICMP洪水攻击是在ping的基础上形成的,但是ping序很少能造成目的及宕机的问题 1.组ICMP包 这里的组包跟写PING序时的组包没太大差别,唯一需要注意的是,我们需要填写IP头部分,因为我们要伪装源地址,做到嫁祸于人。 ICMP_PACKET_SIZE, 0, (struct sockaddr*)&to, sizeof(struct sockaddr)); } free(packet); //记得要释放内存 } 3.写发包开关 \n"); } 4.总的架构 我们使用了64个线一起发包,当然这个线数还可以大大增加,来增加攻击强度。但我们只是做做实验,没必要搞那么大。

    37121

    linux shell

    还是hello world序  首先使用vim辑器(或者是linux下任意的文本辑器)写文件helloshell.sh(没有必要使用.sh后缀名):  #! /helloshell.sh hello shell 通过上面的序没有什么实际的含义,但是通过第一个shell序了解shell序的执行过。  /bin/sh                                osch=0 echo "1. unix(sun os)" echo "2. linux(red hat)" echo  "         else                 echo "what you donot like unix/linux"         fi fi #! 注意序中使用的shell脚本的类型 #!

    25130

    Unix-Linux实践教-chapter01-more

    第一章 Unix系统概述 序中所有对设备的操作都是通过内核进行的 在登陆过中,当用户名和密码通过验证后,系统会启动一个叫做shell的进,然后把 用户交给这个进,由这个进处理用户的请求,每个用户都有属于自己的 shell进 ps命令可以列出系统中运行的所有进 自己动手实践一个more,用来查看文件 Unix不是很难,但也不是轻而易举的事情 计算机系统中包含了很多系统资源,如硬盘,内存,外围设备,网络连接等 ,序利用 这些资源来对数据进行存储,转换和处理 多用户系统需要一个中央管理序,Unix的内核就是这样的序,它可以对序和资源进行管理 用户序访问设备必须通过内核 一些Unix的系统功能是由多个序的协作而实现的 要写系统序,必须对系统调用和相关的数据结构有深入的理解 code #include <stdio.h> #define PAGELEN 24 #define LINELEN 512 void

    6510

    Unix-Linux实践教-chapter02-who

    第2章 用户 文件操作与联机帮助:写who命令 who 命令通过读系统日志的内容显示当前已登陆的用户 Unix 系统把数据存放在文件中,可以通过以下系统调用来操作文件: open(filename, creat(filename, mode) read(fd, buffer, amt) write(fd, buffer, amt) lseek(fd, distance, base) close(fd) 进对文件的读写都要通过文件描述符 ,文件描述符表示文件与进之间的连接 每次系统调用都会导致用户模式与内核模式的切换以及执行内核代码,所以减少 序中的系统调用的次数可以提高序的运行效率 序可以通过缓冲技术来减少系统调用的次数,仅当写缓冲区满或者读缓冲区空时才调用 内核服务 Unix 内核可以通过内核缓冲来减少访问磁盘IO 的次数 Unix 中时间的处理方式是记录从某一个时间开始经过的秒数 当系统调用出错时会把全局变量errno 的值设为相应的错误代码,然后返回-1 序可以 这个数值就叫做文件描述符 Unix 中时间是以一个整数来表示,他的数值是从1970 1 1 0时开始所经过的秒数, 定义在time.h 中,typedef long int time_t; 系统调用是需要时间的,序中频繁的系统调用会降低序的运行效率

    6510

    Unix-Linux实践教-chapter03-ls

    第三章 目录与文件属性:写ls 磁盘上有文件和目录,文件和目录都有目录和属性.文件的内容可以是任意的数据, 目录的内容只能是文件名或者子目录名的属性 目录中的文件名和子目录名指向文件和其他的目录,内核提供了系统调用来读取目录的 内容,读取和修改文件的属性 文件类型,文件的访问权限和特殊属性被码存储在一个16位整数中,可以通过 掩码技术来读取这些信息 文件所有者和组信息是以ID的形式保存的,它们与用户名和组名的联系保存在 passwd 和group数据库中 自己写ls,需要掌握三点: 如何读取目录的内容 如何读取并显示文件的属性 给出一个名字,如何判断是目录还是文件 把多种信息码到不同的字段是一种常用的技术,如电话号码,IP字段等 将二进制数的每三位分为一组来操作,这就是八进制 结构stat 中的st_mode 成员包含16位,其中四位用作文件类型,九位用作许可权限, 剩下的三位用作文件特殊属性 set-user-ID s 使用它来给某些序提供额外的权限 ,比如系统中的打印队列 set-group-ID s sticky 它告诉内核,即使没有人使用序,也要把它放在交换空间中,因为加载速度 比从硬盘空间快 在许可权限部分,用户的x被替换成s,代表set-user-ID

    7310

    相关产品

    • FPGA 云服务器

      FPGA 云服务器

      腾讯FPGA云服务器是基于FPGA硬件可编程加速的弹性计算服务,您只需几分钟就可以获取并部署您的FPGA实例。结合IP市场提供的图片,视频,基因等相关领域的计算解决方案,提供无与伦比的计算加速能力……

    相关资讯

    热门标签

    扫码关注云+社区

    领取腾讯云代金券