GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。 对于一名Linux下工作的c++程序员,gdb是必不可少的工具;
包括cd touch cp mv rm ls,find,切换目录,创建,复制,移动,删除,查看,查找等等
GDB是GNU开源组织公布的一个强大的UNIX下的程序调试工具。也许,各位比較喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但假设你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。
近期,在做未来服务端新业务的技术语言选型。之前我们的服务端都是使用C++开发,充分榨干了服务器的系统资源 —— 创业公司嘛,服务器也是不小的开销,能节省就节省一点吧。后面考虑到要快速的开发新业务,可能需要使用更高级语言。
Think技术社区是一个专注于IT技术分享的线下社区,社区由广大互联网技术的爱好者,工作者,支持者组成,致力于举办专业的,有创见的,具有广泛影响力的互联网社区聚会,为广大社区成员提供最佳的知识交流和自由分享的平台。在这一理念的支持下,Think技术社区与社区的所有成员共同致力于互联网技术的推广,普及和运用,努力为社会,企业,个人创造更大的价值。
诸如Windows平台VC系列:VC++6.0(比较古老) ;Visual Studio2013, Visual Studio 2015,Visual Studio2019;Mac平台的XCode系列,还有CodeBlock,另附一些高级编辑器Notepad++,EditPlus,UE等一些开发工具的常用设置和一些常见快捷键的使用。
C++常用在后端服务器,移动互联网后端,经典Windows界面开发,移动互联网端界面开发,跨平台界面开发,图形分析,系统架构,应用设计,还有现在最为流行的分布架构等一些新的技术领域,C/C++工程师必备知识的思维导图。
干一行爱一行。你爱SCADA这一行吗?如果你爱这一行,那么一定不希望一直做些基础性的工作,一定会将成为这一行的佼佼者作为你的目标。作为一名在西门子从事SCADA工作多年的工程师,想大家聊聊SCADA进阶方面的话题。根据内容不同,会分多次发出。整个系列文章不打算谈及SCADA软件的某个功能的具体操作方法。如果对这些内容感兴趣,请移步1847其它板块。此系列文章,仅针对自己的SCADA工作经历,谈一些自己的经验或者说经历。希望这些经验或者经历能够为刚入门的你,或者正在SCADA路上彷徨的你提供一些启发。如果你已经是SCADA大神了,那就从此页面划走吧。不管是谁,只要对谈论的话题感兴趣,都欢迎在评论区留言。
随着互联网及互联网+深入蓬勃的发展,经过40余年的时间洗礼,C/C++俨然已成为一门贵族语言,出色的性能使之成为高级语言中的性能王者。而在今天,它又扮演着什么样重要的角色呢?请往下看:
最近项目中涉及到使用C++写一个后台服务程序,找了很多资料,还是使用Google搜索找到了比较详细点的资料,就是从微软官方MSDN的例子,如下:
http://blog.csdn.net/haoel/article/details/2879
笔者受光盘启动WinPE系统修复主机原系统启发,设计并开展了以网络启动传输定制操作系统,实施自动化文件替换,劫持关键系统服务的渗透技术方案研究,实现了在内网环境下预置攻击程序的自主启动。
GDB是GNU开源组织发布的一个强大的UNIX下调试程序工具。或许各位比较喜欢那种图形界面方式的,像VC,BCB等IDE的调试,但如果你是在UNIX平台下作软件,你会发现GDB这个调试工具有比VC,BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。
我们常常听到很多人说要学学Linux或者被人告知说应该学学Linux,那么学Linux到底要学什么?
总是被问到,如何学习C和C++才不茫然,才不是乱学,想了一下,这里给出一个总的回复。 一家之言,欢迎拍砖哈。 1、可以考虑先学习C. 大多数时候,我们学习语言的目的,不是为了成为一个语言专家,而是希望成为一个解决问题的专家。做一个有用的程序员,做一个赚钱的程序员。我们的价值,将体现在客户价值上,而不是语言写得好不好看。 C++是C的一个面向对象的解释,C++为C扩充了大规模工程应用,复杂的系统结构的组织和掌控方法,但是,我认为,C++骨子里还是C的。 毕竟,解决具体问题,每个函数内部,都是用C的方式写程序,还是面向过程的。 因此,想要学习好C++,我的建议,先学习C,先学解决问题的能力,再讨论解决大问题的能力。就是先学习怎么走路,再学习怎么跑步。 2、学习C的过程中,一定要理解结构化编程思维。 为什么呢,我前面有文章说过,软件语言的发展过程,就是一个数据私有化的过程,大型工程应用,强调高内聚,低耦合,模块化设计,保持代码最大的灵活性和安全性。 这是现代工程化开发的核心和灵魂。 因此,利用C这门语言入门,借此理解结构化开发思维,可以说是个很方便的路子。因为C的函数,本来就是为重用做准备的。同时,全局变量和cpp内部私有变量的差别,其使用原则,这些都能学到很多结构化开发思维。 3、开始学习C++ C++不难学的,很多人觉得C++难学,其实是因为它在C之外,又提供了很多的概念,尤其是对象,很难以理解。 不过我经过这么多年,把这个问题反而看淡了,我认为面向对象相对面向过程,仅仅是结构化程序设计的一个具体体现,是编译器提供手段,强迫程序员必须遵循数据私有化的一个实例,C++和C的关系,最核心的莫过于此。 现在我们回到C再看看,如果我们把一个全局变量,写到一个cpp里面,并且在对应的h文件中不声明,它是不是就只有这个模块可以使用?它是不是就是私有变量,以这个理解,类能明白了吗? 4、学习C++的深入技巧 C++在类的基础上,经过这么多年的发展,其实提供了很多深入的概念,看起来很复杂,其实我看也很简单。比如模板,我的理解就是“类的类”,大家说是不是? 既然模板理解了,STL,ATL这些,静态模板库,动态模板库,还难理解吗?就是一大堆类的类,可以借此实现很多应用中需要的类,不需要程序员再自己写而已。 ok,STL都理解了,泛型开发还难吗?所谓泛型开发,其实就是我做一个模板,来定义一套算法规则,但是呢,我希望这个算法规则,能进一步抽象,对核心数据类型不要限死,我把各种数据套进去,都可以用,这样,仅算法这部分,我不需要重写了。你想想是不是这个道理? 学到这里,C++和C,其实已经差不多了。再学语言,就是求全责备,过于钻牛角尖了。 5、学习应用开发 前面说了,学习语言,目的不是让别人认为自己是专家,是为了写程序赚钱。因此,语言学完,要学习应用开发。 什么叫应用开发呢,我会一门语言,但是,客户不懂,客户说的很直接,在Windows下给我写个程序,我要什么什么功能。为啥Windows呢?因为我习惯。 OK,很多时候,应用开发要尊重客户习惯,一般说来,语言这个东东,还是要结合具体平台的开发,才能开发出有意义的应用程序卖钱。那么,一般说来,客户端是Windows系统,服务器是Linux,这些都是行业习惯,嵌入式不好说,各种平台都有,Palm,S60,Linux,WinCE,等等。要根据自己的目标客户来定。 当我们选定目标平台后,有一个问题,选什么语言,很多时候,学生和商用程序员差别就在这里,学生一般没得选,自己会啥就用啥呗,企业里的程序员不会,要先评估需求,看哪个语言更合适,不会的语言,要去学。 ok,假定我们选了C和C++,那么,我们需要选择开发平台,Windows下不用说了,VC,这是最好用的,Linux下呢,gcc,其他的也差不多。 假如我们开发VC,并且使用C++,这个时候,才需要考虑学习MFC了,因为这是微软的标准类库,至少Windows平台下,它最权威,你看见没有,我们从学习开始,走了多少步,才走到MFC?是不是MFC不是学习C++上来就必须学的? 6、学习MFC 学习MFC,很多人一上来就开始看其体系架构,看得一头雾水,那个模块关系依赖图,我到现在都看不懂。 呵呵,其实不是啦,和学语言一样,我们学MFC的目的,也不是希望成为MFC的专家,而是要利用MFC开发Windows应用程序,为我们赚钱。看见没?MFC是手段,不是目的,目的是开发Windows程序。 其实Windows下,有一套很标准的C接口,叫Win32API,这个才是Windows的标准编程核心,因此,学习MFC,真实的目的是理解Windows程序开发,建议可以先学习Win32API,看来我们又回到C了哈,呵呵。刚开始学C有用吧? 7、Win32API
有一个项目对实时性要求比较高,于是在linux内核上打了RT_PREEMPT补丁。
说移动端多种证件识别图文智能处理技术之前,先说说服务器端的多种证件识别图文智能处理服务程序。
}内部写了几句
|-- build (存放系统编译规则及generic等基础开发包配置)
这是Android2.1的源代码的目录结构,可以帮助我们研究Android的源代码。Android源代码的下载请参考官网
查阅随机数相关资料,特做整理 首先说一下java中产生随机数的几种方式 在j2se中我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以
在大多数开发或者准开发人员的认识中,C/C++ 是一门非常难的编程语言,很多人知道它的强大,但因为认为“难”造成的恐惧让很多人放弃。
许多程序员都无法正确理解C语言关键字 volatile,这并不奇怪。因为大多数C语言书籍通常都是一两句一带而过,本文将告诉你如何正确使用它。 在C/C++嵌入式代码中,你是否经历过以下情况:
C 语言是最接近计算机的语言,很多时间,我们都会发现,C 语言是非常有必要学习的。
如何用 C 注册 windows 服务程序 (分析 Java Service Wrapper 代码) 前提: 从http://wrapper.tanukisoftware.org 下载 Java Service Wrapper 的源代码. 因为 Java Service Wrapper 同时提供windows 和 linux 上的实现,所以源文件夹里的代码都是分两份的. 在windows下的实现注册 windows 服务的代码在wrapper_win.c 文件中. 看了其中的代码后你会对作者的专业精神有深刻的体会,在wrapper_win.c文件中的历史变动说明就有300多行,详细描述了每次改动的变化.具体实现的方法中也都有详细的说明,所以看这样的代码基本上不费力气的. 如果非要说看代码是享受, Java Service Wrapper 的源代码算一个. 下面我们看看它是如何实现注册一个exe文件为windows服务的. wrapper_win.c中的入口main 函数定义如下: void _CRTAPI1 main(int argc, char **argv) //注意main定义的修饰_CRTAPI1 根据argv的输入参数分别执行,注册,取消,开始,停止windows服务的操作: 代码如下: if(!_stricmp(argv[1],"-i") || !_stricmp(argv[1],"/i")) { result = wrapperInstall(argc, argv); //注册服务 } else if(!_stricmp(argv[1],"-r") || !_stricmp(argv[1],"/r")) { result = wrapperRemove(); //取消注册 } else if(!_stricmp(argv[1],"-t") || !_stricmp(argv[1],"/t")) { result = wrapperStartService(); //启动服务 } else if(!_stricmp(argv[1],"-p") || !_stricmp(argv[1],"/p")) { result = wrapperStopService(TRUE); //停止服务 }
PXE 预启动执行环境是由Intel开发的技术,可以让计算机通过网络来启动操作系统(前提是计算机上安装的网卡支持PXE技术),主要用于在无人值守安装系统中引导客户端主机安装Linux操作系统.
在笔者的上一篇文章中《中断服务子程序是如何被执行的》,详细阐述了中断响应以及执行的整个过程,其中涉及到关于中断向量表的相关知识,本篇文章再次以中断向量表为出发点阐述从上电复位到用户定义的 main 函数的整个过程。
最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=93255 第13章 STM32F407启动过程详解 本章教程主要跟大家讲
最近有点忙,今天就写一篇摸鱼文章吧。 之前写过一篇《网络编程到底要怎么学?》的文章,今天就和大家聊一聊我这些年读过的网络编程书籍(这里不包括纯讲计算机理论的书籍),我会结合自身阅读感受和对实践的帮助来谈一谈我的读后感。 一、Socket 编程类书籍 1. 尹圣雨的《TCP/IP 网络编程》 如果你从来未接触过网络编程,或者想找一本网络编程入门书籍,那么我建议你选择尹圣雨的《TCP/IP 网络编程》,作者韩国人。这本书的特点是: 针对零基础读者,讲解了什么是网络编程(Socket 编程); 详细地介绍 Soc
通过上一节的编译与部署,我们会得到TeamTalk服务器端以下部署程序: db_proxy_server file_server http_msg_server login_server msfs m
[导读] 从这篇文章开始,将会不定期更新关于嵌入式C语言编程相关的个人认为比较重要的知识点,或者踩过的坑。
最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=93255 第13章 STM32F429启动过程详解 本章教程主要跟大家讲
作为一个Android开发者,了解整个系统架构是必须的,所以这篇就总结一下Android手机从按下开机键到启动这一过程发生了什么。
读I2C数据时,要先发出设备地址,这是写操作,然后再发起读操作,涉及写、读操作。所以以读I2C数据为例讲解核心代码。
前言:本篇内容介绍一些基本指令以及注意事项,在操作过程中切记当Linux报错时先看报错,英文不好可以使用QQ截图进行翻译,再思考、查找、研究!!
Kickstart 是一种无人值守系统安装方式,其工作原理是预先把原本需要运维人员手工填写的参数保存成文件,当安装过程中需要填写参数时则自动匹配Kickstart生成的文件,所以只要文件内包含了安装过程中需要人工填写的所有参数,那么就完全不需要运维人员的干预,可自动完成安装工作。
在一个夜黑风高的晚上,我的男同事突然给我发了一条微信,我点开来看,他竟然问我Android从按下开机键到启动到底发生了什么?此刻我的内心如下图:
本专栏,用于记录我对Linux内核源码的学习,就像STL源码的那个专栏一样,我知道阅读源码对我的意义。 愿者上钩咯,共同进步。
在用C++实现一个定时任务框架文章中实现了一个定时任务的框架,本文将将继续针对定时任务进行介绍帮助大家根据具体的应用场景选择合适的方式。
团队背景: 是的,可能你听说过不少我们的事迹,小学生,军装照,前世青年等都是我们的作品。 职位诱惑: 企鹅公司,不解释;团队氛围好,图像视频技术牛,老板NICE;公司免费早餐,全市各个角落班车直达,内部体验福利,安居贷款等福利,让你没有后顾之忧。 招聘职位: Android开发工程师 2人 iOS开发工程师 2人 算法工程师 2人 后台开发工程师 1人 WEB前端开发工程师 1人 感兴趣的同学可以注明申请岗位,发简历到:ttpic_dev@qq.com。 ---- 岗位详情如下: Android开发工程师
完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980 第13章 STM32H7启动过程详解 本章教程主要跟
导读: 刘东发(http://www.codelive.net)的杰作——–远程控制木马”偷窥者”VC6.0编译通过。2001年是中国的木马大丰收的一年. 首先是灰鸽子的诞生.灰鸽子早期版本开放源代码,灰鸽子的作者葛军(俺安徽的老乡,呵呵可不是拉关系),开始还倒不错,开放了源代码,后来功能齐全后,葛军开始翻脸了,不但不公开源代码,还收费.灰鸽子是delphi版的,本人愚笨,没有学delphi,主要原因:borland把自己卖了,jbuider以后都很难说(在下赶紧从jbuilder转向了eclips
一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,必须要把调试信息加到可执行文件中。使用编译器(cc/gcc/g++)的 -g 参数可以做到这一点。如:
转载请标明原址:linux驱动最新面试题(面试题整理,含答案)_不忘初心-CSDN博客_linux驱动面试题
(1) 为了部署一个最基础的电子邮件系统,我们可以使用Postfix服务程序提供SMTP发件服务,Dovecot服务程序提供POP3/IMAP收件服务,使用telnet在本机服务器上发信和收信,在Windows操作系统上用Foxmail软件检验收发信功能。
origin: http://blog.sina.com.cn/s/blog_70bb32080100lx1u.html
Microservice,本身叫微服务。现在的互联网公司,尤其是国内阿里、腾讯、微博、京东、拼多多等,严格来说都是微服务架构。
在进行本文实践之前,需要先完成TARS架的搭建,参考TARS框架部署文档(文末附链接)。在我们的实际应用中,目前基于 TARS,主要采用 Node.js 和 C++ 进行开发。对于 C++ 程序员来说,目前最热门的后台开发语言莫过于 Google 的 Go。TARS 框架最新的版本已经把内部的 TafGo 开源为 TarsGo。作为与时俱进的程序员,当然要尝鲜啦。
领取专属 10元无门槛券
手把手带您无忧上云