学Linux,上红联!
Linux系统教程
您的位置: Linux系统教程 > Linux开发 >
  • 减少curl中内存分配操作(malloc)

    2017-09-17 - 今天我在 libcurl 内部又做了一个小改动(https://github.com/curl/curl/commit/cbae73e1dd95946597ea74ccb580c30f78e3fa73),使其做更少的 malloc。这一次,泛型链表函数被转换成更少的 malloc (这才是链表函数应有的方式,真的)。 研究 malloc 几周前我开...

  • 用Linux shell脚本爬取豆瓣邮箱

    2017-09-16 - 前两天总结一下邮箱格式的正则表达式,写了一个脚本来判断输入的邮箱地址是否符合邮箱的格式。在网上找资料的时候,发现基本都是用Python和Java来做爬虫,当然Python的居多。本着学习的心态,既然得到了邮箱地址有效性的判断,那就顺便用脚本写一个抓取网页...

  • 7个你现在就该学习Python的理由

    2017-09-12 - Python 是一门更注重可读性和效率的语言,尤其是相较于 Java,PHP 以及 C++ 这样的语言,它的这两个优势让其在开发者中大受欢迎。 诚然,它有点老了,但仍是80后啊 至少没有 Cobol 或者 Fortran 那么老。而且,如果还能派上用场的话,为啥要折腾着改变它呢 (...

  • linux c使用system调用shell脚本

    2017-09-08 - system的原理其实就是调用fork创建子进程去执行shell命令,然后返回最后一条shell命令的状态值。linux下man system可以看到返回值说明: 1.如果返回值等于-1就是system函数执行失败,准确的说是fork创建子进程失败。 2.shell执行最后一条语句的状态值放在返...

  • Linux系统下C语言如何调用scalapack中的函数

    2017-09-08 - 在并行计算中经常需要调用scalapack(并行化的lapack)函数库里面的函数进行编程,这里简单介绍在C语言如何调用scalapck中的矩阵向量乘的函数。 注意:scalapack中的函数是用fortran写的,矩阵是按列进行存储的。 scalapack的链接需要用到blas,因此确保本机上...

  • Minikube:使用Kubernetes进行本地开发

    2017-09-08 - 如果你的运维团队在使用 Docker 和 Kubernetes,那么建议开发上采用相同或相似的技术。这将减少不兼容性和可移植性问题的数量,并使每个人都会认识到应用程序容器是开发和运维团队的共同责任。 这篇文章介绍了 Kubernetes 在开发模式中的用法,它的灵感来自...

  • linux下strncasecmp的实现

    2017-09-07 - 看来strcpy的实现确实是太low了,腾讯的笔试字符串知识点考察就变了。 Linux下不区分大小写的字符串比较函数原型: int strncasecmp(const char *s1, const char *s2, register size_t n); 返回值: 如果相等返回0 如果s1s2,返回正整数 如果s1s2,返回负整...

  • 树莓派和其他arm开发板的本质区别

    2017-09-06 - 我第一次听说树莓派时,并没有对它产生任何兴趣,因为对我来说这并不是一款新产品。在更早之前,我玩过 arm11 的开发板(S3C6410 系列),虽然和树莓派还是有区别的,比如体积更大、没有 HDMI 接口、自带触摸屏、价钱比树莓派稍贵等等,但我当时认为没有本质...

  • 适合教孩子编码的7款免费编程语言

    2017-09-05 - 计算机编程是一项需求旺盛且欣欣向荣的事业, 所以这些日子父母们可能都希望他们的孩子长大后成为一名软件程序员。如果你先教你的小孩如何编程,该从哪儿开始呢? 可以尝试一下此列表中这些对儿童友好的编程语言以及工具。 1.Scratch(https://scratch.mit.edu...

  • 这可能是最全的计算机编程语言列表了

    2017-09-03 - 计算机编程语言可用于将指令传达给计算机。它们基于某些句法和语义规则,定义了编程语言中每种结构的含义。 现在我得到了一个凡是可以找得到的每种编程语言的列表。我将它们分为以下几类: 一、解释型编程语言 二、函数式编程语言 三、编译型编程语言 四、过...

  • 模拟Linux修改实际、有效和保存设置标识

    2017-09-02 - 就是模拟setuid seteuid setreuid setresuid,感觉代码比书上大段的文字好记,就写成代码形式了。 // setuid.cc: 模拟unistd.h中的设置用户ID的方法的作用 #include stdio.h #include errno.h int real = 0; // 实际用户ID int effective = 0; // 有效用户ID...

  • 将socket程序从linux移植到windows上

    2017-09-02 - 今天突然想试下纯socket编程在两个系统上代码重合量有多大,只要不使用VC自定义的宏(比如SOCKET、SOCKADDR等等)感觉代码重合量挺大的。 比如最简单的TCP客户端和服务端对话,在VC中用int取代SOCKET宏,用struct sockaddr_in取代SOCKADDR_IN宏。 然后区别就...

  • linux保存的设置用户/组ID(set-user-ID)的测试

    2017-09-01 - 直接贴代码和结果: // FileName: id.cpp #include iostream #include unistd.h using namespace std; int main() { cout 进程ID: getpid() endl; cout 实际用户ID: getuid() endl; cout 有效用户ID: geteuid() endl; return 0; } 实际ID: root(0), xyz(1000...

  • 以Linux下的测试程序说明递归型互斥量和普通互斥量的区别

    2017-09-01 - 先贴代码和测试结果: // Mutex.h: 对pthread的互斥量的RAII包装 #ifndef _MUTEX_H_ #define _MUTEX_H_ #include stdio.h #include stdlib.h #include string.h #include pthread.h // 使用错误码errnum和字符串msg来打印错误信息, 并且退出程序 static inli...

  • 如何在linux下shell编写脚本中模拟键盘输入

    2017-08-27 - 做Docker构建镜像的练习,写了下面这个 Dockerfile 文件,其中 yum install tomcat 执行过程中需要用键盘输入两次字符y以便确认选项,Dockerfile 脚本命令如下: FROM centos MAINTAINER quicmous xuyeping@yeah.net RUN yes y | head -2 | yum install tomc...

  • 开发一个Linux调试器(五):源码和信号

    2017-08-27 - 在上一部分我们学习了关于 DWARF 的信息(/linux/32098.html),以及它如何被用于读取变量和将被执行的机器码与我们的高级语言的源码联系起来。在这一部分(/linux/31643.html),我们将进入实践,实现一些...

  • linux查看目录的剩余可用空间【shell脚本】

    2017-08-24 - Linux中暂时没发现现成的命令,因此可用用shell脚本结合df -h命令来实现 实现思路: 1、输入一个路径 2、获得df -h信息 3、保存根目录的可用空间大小 4、除了跟根目录之外的其他挂载目录匹配路径,如果匹配成功,取该路径的可用空间,或者取根目录的可用空间...

  • linux c/c++判断是否为中文(不包括中文符号,非正则)

    2017-08-24 - 在Linux环境下,c/c++默认的中文编码为UTF-8,中文的unicode编码是双字节的编码。有趣的是,windows环境下中文utf-8的编码为两个字节,而linux环境下UTF-8的为三个字节,而匹配中文使用正则表达式为 [\u4e00-\u9fa5] 无论你是怎么搜索,搜索出来匹配中文的正...

  • linux应用程序中设置RTC

    2017-08-22 - 接触过Linux的朋友们都知道,linux内部的时间分为系统时间和硬件时间。系统时间一般是在系统启动时读一下RTC,然后就依靠定时器维护的时间,这个时间的是掉电不保存的。而 硬件时间通常指的就是RTC,只要RTC有电池供电,这个时间是可以掉电保存的。 系统时间...

  • Linux启动代码boot.s理解

    2017-08-21 - 为了理解Linux的启动代码,我自己也照着书中抄了一遍。具体的代码如下: ; ; boot.s --bootsect.S framework ; .globlbegtext,begdata,begbss,endtext,enddata,endbss ;global flag .text begtext: .data begdata: .bss begbss: .text BOOTSEG = 0x07c0 entr...

  • 基于qt的arm与x86两种平台的opencv开发

    2017-08-18 - 最近折腾一些超级麻烦的东西,先是ros后是OpenCV的qt、ubuntu、树莓派、win各种乱七八糟的东西,简直是剪不断,理还乱。好了,废话不多说,直接上方案。 关于安装qt、opencv什么的我就不详细说了,这里提点一下。关于qt版本的问题,最好还是上qt5吧,虽然没q...

  • 使用Snapcraft构建、测试并发布Snap软件包

    2017-08-18 - snapcraft 是一个正在为其在 Linux 中的地位而奋斗的包管理系统,它为你重新设想了分发软件的方式。这套新的跨发行版的工具可以用来帮助你构建和发布 snap 软件包。接下来我们将会讲述怎么使用 CircleCI 2.0 来加速这个过程以及一些在这个过程中的可能遇到的...

  • 学习用Python编程时要避免的3个错误

    2017-08-16 - 当你做错事时,承认错误并不是一件容易的事,但是犯错是任何学习过程中的一部分,无论是学习走路,还是学习一种新的编程语言都是这样,比如学习 Python。 为了让初学 Python 的程序员避免犯同样的错误,以下列出了我学习 Python 时犯的三种错误。这些错误要...

  • linux终端关闭时为什么会导致在其上启动的进程退出?

    2017-08-14 - 现象 经常在Linux下开发的人应该都有这样的经验,就是在终端上启动的程序,在关闭终端时,这个程序的进程也被一起关闭了。看下面这个程序,为了使进程永远运行,在输出helloworld后,循环调用sleep: 直接关闭这个终端,在另一个终端上查找该进程,已经找不...

  • 如何再Qt编程中识别是UTF-8还GBK编码

    2017-08-11 - 在最近的项目中,我们需要读取在mp3音乐文件中的metadata。如果大家有兴趣的话,可以参阅我的github项目: https://github.com/liu-xiao-guo/coverinfo 我们知道,现在的很多流行的软件都可以去修改一个mp3音乐文件的metadata里的内容,比如再Ubuntu平台上的...

  • linux上使用tshark运行lua脚本

    2017-08-02 - 在这里[附1]我曾经介绍过在windows上面是如何实现批量的切流。因为windows终究不如Linux上面可以使用shell脚本来的方便,因此这次在linux上面又实现了一遍(然后还发现,针对同一个报文,linux的执行速度要比之windows快上不少),这里有些注意的地方做一下...

  • linux shell编程之产生真随机数(利用时间轴的办法)

    2017-08-02 - 众所周知,Linux自带的random实际上是一个伪随机,所以我这里用了一种新的办法来解决这个问题,那就是时间轴! 时间轴是怎么回事呢?每个时间都是不固定的,这个是不可预测的,因此是随机的,通过获得现在的时间然后将现在的时间换算成秒,然后通过求模运算...

  • linux脚本之提醒程序员及时来起身动一下

    2017-08-02 - 将这段代码保存,然后运行即可,就可以实现一个半小时,电脑右上角弹出来一个框提示您辛苦了需要休息的对话框消息。 代码如下: #!/bin/bash #while true #do realtime=`date +%H:%M` #echo 这条提供关键信息,时间为$realtime if test $realtime != 14:32 t...

  • linux生成连续时间戳

    2017-08-01 - 第一种: 代码如下: #!/bin/sh echo 打印今天之前连续的十个时间戳 TODAY_DATE=`date` date_range=$(seq 10) # 数组 #echo ${date_range[@]} for i in ${date_range[@]} do INSTANCE_DATE=`date -d ${TODAY_DATE} $i day ago +%Y%m%d`; echo ${INSTANCE_DAT...

  • Linux下使用OpenCV打开笔记本摄像头

    2017-08-01 - 新建test文件夹,文件夹存在test.cpp和CMakeLists.txt test.cpp #include iostream #include string #include sstream #include opencv2/core.hpp #include opencv2/highgui.hpp #include opencv2/videoio.hpp using namespace cv; using namespace std; con...

  • linux C语言同一个文件被不同程序读写

    2017-07-31 - 最近一直在忙毕设,出现了很多问题。 今天终于把物联网毕业设计应用层到底层的数据连接上了。 现在上一个让我最无奈的问题。 在ARM开发板系统里面,文件到底可不可以同时被不同的程序读和写? 之前一直都存在一个非常严重的误区。 一直认为,在C语言里物物皆...

  • 使用Kdump检查Linux内核崩溃

    2017-07-31 - 让我们先看一下 kdump 的基本使用方法,和 kdump/kexec 在内核中是如何实现。 kdump(https://www.kernel.org/doc/Documentation/kdump/kdump.txt) 是获取崩溃的 Linux 内核转储的一种方法,但是想找到解释其使用和内部结构的文档可能有点困难。在本文中,...

  • Python中单引号,双引号,3个单引号及3个双引号的区别

    2017-07-27 - 单引号和双引号 在Python中我们都知道单引号和双引号都可以用来表示一个字符串,比如 str1 = python str2 = python str1和str2是没有任何区别的。 我们知道python以其易用性而著名,所以刚开始看教程学习看到单引号和双引号都可以使用会以为这是Python为了方...

  • Linux编译出的进程内没有新编写的函数

    2017-07-26 - 今日一位同事在代码里新增了一个.c文件,加了几个调试函数,运行后发现无法使用。通过objdump反汇编看到汇编代码里确实没有该c文件中的调试函数。一开始以为编译有问题,经排查,发现.o确实生成,并且和其他.o生成的.a中也能反汇编出这些函数,在编译输出中...

  • linux下使用open(),write(),给bmp图片打马赛克

    2017-07-26 - 本程序用于在Linux下使用文件操作对bmp图片进行打马赛克,效果很不错。 对于bmp格式,只需要知道这两点: 1,偏移为18byte的地方保存了bmp图片的宽度和高度,分别占4byte。 2,偏移为54byte的地方为图片的数据区,若为24位彩色图,则一个像素占3byte空间。...

  • 开发一个Linux调试器(四):Elves和dwarves

    2017-07-24 - 到目前为止,你已经偶尔听到了关于 dwarves、调试信息、一种无需解析就可以理解源码方式。今天我们会详细介绍源码级的调试信息,作为本指南后面部分使用它的准备。 ELF 和 DWARF 简介 ELF 和 DWARF 可能是两个你没有听说过,但可能大部分时间都在使用的组件...

  • CentOS6自定义服务控制脚本

    2017-07-24 - 简介 我们在编译安装一些服务时候,如果想要更方便的启动关闭服务,最方便的就是使用系统给的service(CentOS6及以前)或systemctl(CentOS7)来控制,可是怎么才能定义它们呢?当然是需要自定义脚本了,两种工具不一样,定义的脚本也不一样。下面跟着我,我们试...

  • linux虚拟内存地址转化成物理内存地址

    2017-07-22 - 背景 现代手机这种SOC(system on chip),因为功耗、Modem等功能soc上集成了很多core,他们还可以是独立的系统在运转。 比如ADSP简介ADSP(Application Digital Signal Processing)就是高通的Hexagon DSP ,就是独立运转的一个core+system。这样做不仅可以使用...

  • 不需要编码:树莓派上的Node-RED

    2017-07-21 - 查看本教程,看看使用 Node-RED 的拖放界面设置硬件流程是多么容易。 Node-RED 是一个编程工具,可让你使用基于浏览器的编辑器快速连接硬件设备。它具有大量的节点,可以以拖放的方式构建流程,这大大减少了开发时间。Node-RED 与树莓派的 Raspian Jessie 一...

  • php执行linux命令的6个函数

    2017-07-21 - 一般情况下,很少会用php去执行linux命令,不过特殊情况下,你也许会用到这些函数。以前我知道有二个函数可以执行linux命令,一个是exec,一个是shell_exec。其实有很多的,结合手册内容,介绍以下6个函数。 1,exec函数 ?php $test = ls /tmp/test; //ls是li...

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