学Linux,上红联!
Linux系统教程
您的位置: Linux系统教程 > Linux开发 >
  • Linux网络编程:使用AF_PACKET域套接字发送任意以太网帧

    2017-04-23 - Linux提供了packet套接字,使得用户层可以从设备驱动层(链路层)接收以太网帧或者发送以太网帧到设备驱动层。 packet_socket = socket(AF_PACKET, int socket_type, int protocol); socket_type参数为SOCK_RAW或SOCK_DGRAM。两者的区别是SOCK_RAW要求用户自...

  • centos6.5下编译hello.ko驱动程序

    2017-04-23 - 说明: 该驱动编译过程是在虚拟机中,安装完centos 6.5系统后: A:默认make为用的自带的内核版本,我的centos 6.5系统 版本为(命令uname -r):2.6.32-431.el6.x86_64时: A1、cd /usr/src/kernel/下; A2、将2.6.32-431.el6.x86_64的kernel文件夹复制到/usr...

  • #!/usr/bin/env python的作用

    2017-04-23 - 首先,脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它,就这么简单。 #!/usr/bin/env Python这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里。当系统看到这一行的时候,首先会到env设置里查找py...

  • 调试器的工作原理(一):基础篇

    2017-04-18 - 这是调试器工作原理系列文章的第一篇,我不确定这个系列会有多少篇文章,会涉及多少话题,但我仍会从这篇基础开始。 这一篇会讲什么 我将为大家展示 Linux 中调试器的主要构成模块 - ptrace 系统调用。这篇文章所有代码都是基于 32 位 Ubuntu 操作系统。值得...

  • Linux实现秒级定时任务(crontab)Shell小脚本

    2017-04-16 - 今天领导让我配置一个服务器job,要求是暂时每秒钟都要跑一次。本来想到去crontab配置。Linux的定时任务简单地配置到crontab里面就可以了,设置方法也很简单,如下所示,6个参数依次表示为分、时、日、月、周和具体任务(示例为每天凌晨3点执行freshclam工作...

  • 由一次symbol lookup error引发的思考

    2017-04-15 - 开发一个跨平台的项目的时候,大部分时候都是在VS下进行编码,所以也就使用了VS的解决方案来管理项目。 因为要跨平台,当时网上看scons这个工具不错,所以在linux下就使用了scons来作为编译脚本。 linux(gcc)下与windows(vs)下的对于链接这一步稍有不同。当...

  • linux下Qt WebEngine程序打包简单记录

    2017-04-15 - 本次记录仅作参考。 程序说明: 程序是一个编解码器控制管理的工具,使用到的库有:Qt的WebEngine、OpenGL模块、poco库、libmicrohttpd、libcurl、libvlc。同时程序间接的依赖libssl/libxml2等库。 其中poco/libcurl/libmicrohttpd等都编译为了静态库,libvl...

  • Linux下使用SEAL同态加密

    2017-04-14 - SEAL 全称Simple Encrypted Arithmetic Library,是微软研究院提出的一种同态加密算法的实现方案,其最终结果是一个C++库,在程序中调用相关API,完成同态加密的功能。因为毕设要用到相关的内容,所以做了些调研。 0、准备工作 下载链接:http://sealcrypto....

  • Linux下使用openssl的AES加密-CBC模式

    2017-04-14 - 最近需要用到AES加密,为了图方便就打算使用openssl自带的AES加密算法的API来实现。 主要用到了ECB和CBC两种加密模式。 ECB模式之前一篇(http://www.linuxdiyf.com/linux/29980.html)已经写过了。这篇就写一下CBC模式。 代码: #include stdio.h #include...

  • Linux下使用openssl的AES加密-ECB模式

    2017-04-14 - 最近需要用到AES加密,为了图方便就打算使用openssl自带的AES加密算法的API来实现。 主要用到了ECB和CBC两种加密模式。 ECB模式如下: #include stdio.h #include stdlib.h #include string.h #include unistd.h #include openssl/aes.h int main(int argc,...

  • Linux页框分配时,node和zone的选择

    2017-04-13 - 一、页框分配时,node、zone选择方法 zonelist order、内存策略、用户选择 1、如何确定从哪个node分配 (1)通过函数参数指定 (2)通过内存策略指定 2、如何确定从哪个zonelist搜索zone 是否设置了__GFP_THISNODE 二、node选择 1、node选择方式 (1)Interl...

  • 如何学习wxPython

    2017-04-13 - 一、目录 1.如何学习wxPython 学习Python 选择一个好的编辑器 安装wxPython 阅读wxPython教程 阅读wxPython编码风格指南 阅读wxPython程序实例(demo files) 使用wxWidgets文档 使用wxPython参考手册(实验状态) 研究他人的代码 提问题 二、学习Python 如...

  • Linux内核安装补丁

    2017-04-12 - 本文通过自身实践,介绍了在Linux下为内核打补丁的简单实例。 Linux下安装高版本补丁到低版本的步骤大体分为以下几步: 1、选取补丁 2、构建补丁 3、编译并处理编译错误 4、安装并验证补丁 环境 本文为Ubuntu 14.04版本,64位系统。 内核版本4.1.38。 内核安...

  • Linux内核的编译与安装(图解)

    2017-04-12 - 本文主要通过自身实践,介绍了Linux内核的编译与安装教程。 环境 本文为Ubuntu 14.04版本,64位系统。 内核版本4.1.38。 工作准备 (1)平台 需要安装Linux Ubuntu系统,可以安装在PC上,也可以安装在虚拟机上。 (2)内核 可在下载地址 https://www.kernel....

  • Linux driver oops异常的处理

    2017-04-09 - 如果Linux驱动里面出现了oops异常,这种情况如何快速定位到底什么原因引起的呢,需要对驱动debug。 例如: #include linux/init.h #include linux/module.h static int __init hello_init(void) { int *p = NULL; *p = 0; return 0; } static void __exit he...

  • c程序调用shell脚本获取返回值方法

    2017-04-08 - 流程示意图: shell脚本: 文件名:getpath #!/bin/bash curpath=$PWD temp1=$(mount) temp2=${temp1%%$curpath*} temp3=${temp2%*on*} mountpath=${temp3:0-9:9} echo $mountpath exit 0 pwd命令获取的结果: /media/xx/usb mount命令获取结果:/dev/sdb1 o...

  • 基础指南:利用Sed Stream编辑器在Linux中处理文本

    2017-04-08 - Sed stream编辑器是一款文本编辑器,能够对来自标准输入或文件的信息者编辑操作。Sed以非交互方式对内容逐行编辑。 这意味着大家能够通过调用命令做出编辑决定,而sed则能够自动加以执行。虽然这一机制不太直观且较难理解,但却是一种非常强大且快速的文本转...

  • Sed中级教程:在Linux环境下操作文本流

    2017-04-08 - Sed流编辑器是一款功能强大的编辑工具,能够利用极少输入内容完成多种操作。在上一篇教程里,我们探讨了sed文本编辑器基础知识。 本文将继续介绍其它更为先进的议题。 提供多个编辑序列 有时候,我们可能需要同时向sed发送多条命令。大家可以通过多种方式实...

  • linux清空日志shell脚本

    2017-04-07 - 1、find与xargs结合清空日志脚本案例 使用find的搜索某个目录下、log后缀的文件、某时间段文件更改时间的文件、文件类型为一般文件,然后通过xargs执行删除命令 find FIND_PATH -name *.log -mmin +n -type f | xargs rm -rf FIND_PATH:日志存储目录 -name...

  • 如何挑选你的第一门编程语言

    2017-04-06 - 想学编程的原因有很多,你也许是想要做一个程序,又或者你只是想投身于这个行业,所以,在选择你的第一门编程语言之前,问问你自己:你想要在哪里运行程序?你想要程序来完成什么工作?你学习编程的原因将会决定你的第一门编程语言的选择。...

  • 两个脚本文件,工作时间不允许访问百度,不工作时允许访问百度

    2017-04-05 - Linux之防火墙的两个脚本文件 如图所示:两个脚本文件 iptables_work.sh #/bin/bash iptables -A OUTPUT -p ALL -d www.baidu.com -j REJECT 工作时间不允许访问百度。 iptables_rest.sh #/bin/bash iptables -D OUTPUT -p ALL -d www.baidu.com -j REJECT...

  • 获取linux机器上的网卡地址

    2017-04-05 - 获取linux机器上的网卡地址的代码如下: #include stdio.h #include string.h #include sys/socket.h #include sys/ioctl.h #include net/if.h #include unistd.h int get_mac(char* in_mac, int size) { struct ifreq ifr; struct ifconf ifc; char buf[102...

  • Dockerfile的书写规则和指令的使用方法

    2017-04-05 - Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令。Docker程序将这些Dockerfile指令翻译真正的Linux命令。Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Makef...

  • shell脚本第一行:#!/bin/bash的含义

    2017-04-05 - 相信有接触过shell脚本的同学们都应该知道,shell脚本的第一行一般会写有以下字样: #!/bin/bash 或者 #!/bin/sh 或者 #!/bin/awk 比较常见的说法是:第一行的内容指定了shell脚本解释器的路径,而且这个指定路径只能放在文件的第一行。 但我们也知道,在she...

  • 关于waitKey()函数的用法

    2017-04-02 - 首先分享一段代码,和在Linux下的运行方法: //#include opencv2/calib3d/calib3d.hpp #include opencv2/core/core.hpp #include opencv2/highgui/highgui.hpp #include opencv2/imgproc/imgproc.hpp //#include opencv2/features2d/features2d.hpp #include...

  • 开发者的实用Vim插件(三)

    2017-04-02 - 目前为止,在一系列介绍 vim 插件文章中,我们介绍了使用 Pathogen 插件管理包安装基本的 vim 插件,也提及了另外三个插件:Tagbar、delimitMate(http://www.linuxdiyf.com/linux/25425.html) 和 Syntastic(http://www.linuxdiyf.com/linux/25508.html)...

  • Linux真随机数的生成

    2017-03-31 - 今天看《白帽子讲WEB安全》一书,看到笔者谈到Linux如何实现真随机数生成,感觉非常有用,记录下来。 #includeiostream using namespace std; #includeunistd.h #includefcntl.h #includecmath int main() { int randoms=open(/dev/random,O_RDONLY); int ra...

  • 订阅Linux内核的邮件列表

    2017-03-31 - 1、发送订阅邮件 注意:一定不要使用像Foxmail这样的第三方邮件客户端,因为发送的邮件会转码,导致订阅不成功,推荐使用Gmail,直接登录进去发送。 发送邮件内容: 接收人:majordomo@vger.kernel.org 主题:hello 内容:subscribe linux-kernel 2、接收到...

  • exif_imagetype()函数在linux下的php中不存在

    2017-03-30 - 1.问题,项目中上传文件使用插件时,windows上支持函数exif_imagetype(),而在linux上不支持。 2.PHP exif_imagetype的本质 PHP exif_imagetype note #1 Windows users: If you get the fatal error Fatal error: Call to undefined function exif_imagety...

  • Linux下C语言open函数打开或创建文件与read,write函数详细讲解

    2017-03-30 - open(打开文件) 相关函数 read,write,fcntl,close,link,stat,umask,unlink,fopen 表头文件 #includesys/types.h #includesys/stat.h #includefcntl.h 定义函数 int open( const char * pathname, int flags); int open( const char * pathname,int f...

  • linux C编程之sleep()和usleep()的使用和区别

    2017-03-30 - 函数名: sleep 头文件: #include windows.h // 在VC中使用带上头文件 #include unistd.h // 在gcc编译器中,使用的头文件因gcc版本的不同而不同 功能: 执行挂起指定的秒数 语法: unsigned sleep(unsigned seconds); 示例: #include windows.h #includestdio....

  • Linux下查找.so文件中函数入口

    2017-03-29 - 有时候会想知道 .so 文件中某些信息,比如版本,函数入口等。strings 命令是个很有用的命令,比如我想知道 libstdc++.so 这个动态库里面是否有 refill 函数,可以用 $ strings libstdc++.so | grep refill 输出 _ZN9__gnu_cxx17__pool_alloc_base9_M_refillE...

  • Linux shell语句保留最新的几个文件

    2017-03-29 - 对于自动备份的一些文件,备份的会越来越多,所以,有时需要保存指定数量最新的文件,可以用一个简单的脚本来完成,操作系统平台是CentOS 6.5。 获取当前脚步所在目录 RootDir=$(cd `dirname $0`; pwd) 查看当前目录的文件数详细信息 ls -lt 显示文件数 File...

  • linux使用copy_from_user而不是memcpy拷贝用户空间数据原因

    2017-03-28 - 我们平时在内核中访问用户进程的地址的时候一般会用到copy_from_user,而不是用memcpy直接拷贝。 为什么有这样的要求? 另外在走读代码的时候发现有同事直接用了memcpy将用户空间数据直接拷贝到内核空间,但是并没有发现导致死机,这是什么原因呢? 接下来我...

  • linux cpufreq调频实现

    2017-03-28 - 目前的cpu频率越来越高,但实际上大部分场景并不需要cpu一直工作在最高频率。 因为cpu工作频率越高,功耗越大,尤其是对手机等移动设备,更需要降低功耗,延长手机电池使用时间。 在linux中,通过cpufreq来实现频率的动态调节。 1.先直观看下cpufreq提供的功...

  • linux下运算的几种方法

    2017-03-28 - 1.expr 1.1.最简单的用法 yan@yan:~$ expr 4 \* 5 20 yan@yan:~$ 1.2.bash脚本对于expr yan@yan:~$ cat expr1.sh #!/bin/bash PATH=/home/yan/bin:/home/yan/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/loca...

  • Linux退出状态码

    2017-03-28 - Linux退出状态号码 命令:echo $? 可以读取上一条命令的退出码 0 命令成功执行 1 一般性未知错误 2 不适合的shell命令 126 命令不可执行 127 未找到命令 128 无效的退出参数 128+x linux信号严重错误 130 通过ctrl+c退出的 255 正常范围之外的退出状态码 案例...

  • Linux系统监控-内存读取

    2017-03-25 - 一、背景 做一个监控程序,监控设备系统使用内存情况;后续使用 free命令发现系统内存越来越小,而小到一定程度后仍然保持,并未导致OOM。 二、相关资料 Linux 下 free 命令手册 NAME free - Display amount of free and used memory in the system SYNOPSIS...

  • Linux下使用libiptc库编程下发规则

    2017-03-25 - 一、背景需求 近期编写tcp透明代理时,考虑了透明方式下需要使用 iptables 进行 DNAT/SNAT 规则下发,在程序中可以生成命令后通过 system 调用执行; 那么,iptables 是否有提供外部接口来代替上述这种 system() 执行命令的方式?答案是可以使用libiptc库进...

  • Linux下使用原始套接字实现ping命令

    2017-03-25 - 一、背景需求 客户端程通过透明代理访问远程服务器,代理需要以SNAT去修改源地址源端口,一般写法是Add SNAT、Connect、Del SNAT; 那么问题来了,加SNAT规则时需要 -s $ip --sport $port (避免多个客户端互相混淆),若正好代理机器上存在多个地址时,调用...

  • 首页
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 下一页
  • 末页
  • 501986