
Linux
文章平均质量分 74
andy cong
何以解忧,唯有编程
展开
-
Linux-(C)文件读写实例(系统调用/标准I/O库)
从实现的角度:系统调用直接对文件和设备进行访问和控制的的一组底层接口, 而标准I/O库为地城I/O调用提供了一个通用的接口,系统调用直接跟底层打交道,系统调用移植性远不如标准I/O库好。从性能的角度:使用系统调用会影响系统的性能。与库函数调用相比,系统调用的开销要大些,因为在执行系统调用时,Linux必须从运行用户代码切换到执行内核代码,然后再返回用户代码。减少这种开销的一个好办法是,在程序中尽量减少系统调用的次数,并且让每次系统调用完成尽可能多的工作。比如,每次读写大量的数据而不是每次仅读写一个字符。原创 2016-07-24 14:27:42 · 15360 阅读 · 0 评论 -
Linux-(C/C++)动态内存分配malloc以及相关学习
1、C/C++内存分类(引用C++ Primer )(对象在C语言中可以理解为变量) 1.1、静态内存:静态内存用来保存局部static对象、类static数据成员、以及定义在任何函数之外的变量 1.2、栈内存:栈内存用来保存定义在函数内非static对象。(当然包含函数参数开辟的内存) 1.3、动态内存:每个程序还有一个内存池,这部分内存被称作自由空间(free stor原创 2016-07-18 20:58:18 · 9394 阅读 · 0 评论 -
Linux-退格键回显(^H^H^H^H)stty/tcgetattr学习
主要解决程序退格键回显问题:1、获取终端termios信息2、对应的键功能修改3、完成后设置生效(4、程序结束前回复系统的默认状态,根据需要决定)原创 2016-08-11 18:07:19 · 6133 阅读 · 0 评论 -
Epoll触发事件的类型(转载)
很Amazing,客服端关闭(close)居然不是触发epoll的EPOLLHUP事件,结果找了老半天的错误,记录一下。为此警惕自己,不能相信直觉,一切从文档出发。转载 2016-11-27 14:40:58 · 921 阅读 · 0 评论 -
Linux 文件系统实现代码
#include #include #include#includeusing namespace std;typedef struct User{ string name[30]; string passwd[30]; int n;} User, u;typedef struct Priv{ char read; char write; char execute;原创 2017-03-05 14:31:31 · 2275 阅读 · 1 评论 -
shell脚本批量导入数据到oracle数据库
1、方法:在shell读取文件(文件中已经写好了sql插入语句),然后直接导入到oracle数据库中。2、表stu结构和文件data.txt内容,如下。原创 2017-09-20 00:14:29 · 10614 阅读 · 2 评论 -
在Ubantu上安装oracle客户端工具sqlplus
前言: 我装这个oracle也是遇到很多问题,首先我是想通过在虚拟机ubantu上直接安装oracle服务端和客户端,因为我主要想使用shell操作数据库。然后安装过程中各种包,环境好麻烦,一直没安装成功。所以我最终把oracle服务端安装在windows上,客户端安装在linux上,减轻了好多工作量,但是也是遇到好多问题,网上博客好乱,跟着做出现了问题找不到解决方案。终于找到原创 2017-09-20 01:13:25 · 1759 阅读 · 0 评论 -
Linux环境变量总结
转载出处:https://www.jianshu.com/p/ac2bc0ad3d74Linux是一个多用户多任务的操作系统,可以在Linux中为不同的用户设置不同的运行环境,具体做法是设置不同用户的环境变量。Linux环境变量分类一、按照生命周期来分,Linux环境变量可以分为两类:1、永久的:需要用户修改相关的配置文件,变量永久生效。2、临时的:用户利用export命令,在当前终端转载 2018-01-22 01:33:58 · 384 阅读 · 0 评论 -
makefile总结 (可做手册使用)
引言:楼主超棒。 千里之行,始于足下Makefile使用总结1. Makefile 简介自己补充两个概念:make:一种控制编译或者重复编译软件的工具makefile:是一个文本形式的脚本文件,包含一些规则,具体告诉make编译哪些文件,怎么编译。Makefile 是和 make 命令一起配合使用的.很多大型项目的编译都是转载 2016-07-14 22:02:28 · 3506 阅读 · 0 评论 -
跟耗子一起学makefile
makefile(一):make简介makefile(二) :make如何工作、变量使用、make自动推导makefile(三):makefile5大组成、引用其他文件、环境变量、工作方式。makefile(四):make规则书写、文件搜寻、伪目标makefile(五):多目标、静态模式、自动生成依赖性makefile(六):书写命令、嵌套make、定义命令包makefile(七):变量、over...原创 2018-01-28 22:30:48 · 665 阅读 · 0 评论 -
Linux-(C/C++)动态链接库生成以及使用(libxxx.so)
linux静态库生成与使用:http://www.cnblogs.com/johnice/archive/2013/01/17/2864319.htmlLinux中so文件为共享库,与windows下dll类似,不过实现要简单。so可以供多个进程使用,不同进程调用同一个so文件,所使用so文件不同。so文件源程序不需要main函数,有也不会被执行。下面通过一个简单例子,来学习.so原创 2016-07-24 17:29:54 · 49977 阅读 · 7 评论 -
理解阻塞非阻塞与同步异步的区别
来自知乎讨论:https://www.zhihu.com/question/19732473作者:严肃链接:https://www.zhihu.com/question/19732473/answer/20851256来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。阻塞”与"非阻塞"与"同步"与“异步"不能简单的从字面理解,提供一个从分布式系统角度的回答。1.同步与异...转载 2018-03-07 16:27:35 · 245 阅读 · 0 评论 -
浅谈linux的命令行解析参数之getopt_long函数
前言 在linux中,经常需要各种命令,通常情况下都会带各种参数,而这些参数是如何解析的呢?通常使用GNU C提供的函数getopt、getopt_long、getopt_long_only函数来解析命令行参数。一、关于命令行参数 命令行参数可以分为两类,一类是短选项,一类是长选项,短选项在参数前加一杠"-",长选项在参数前连续加两杠"--",如下表(ls 命令参数)所示,...原创 2018-05-05 18:03:13 · 72727 阅读 · 11 评论 -
Linux-(C)利用Mysql相关API实现类似mysql的操作
程序大概实现流程:1、通过主函数传递参数登陆数据库: 程序名 -u 数据库用户名 -p;./mysql1 -u dbuser1 -p2、初始化连接数据库。3、处理输入sql语句。程序分显示跟不显示。(显示的意思是执行了sql命令之后时候会输出控制台,eg,show、desc、select等命令执行完后会打印信息到控制台 insert、delete、update则不会)4、循环输入执行sql语句,直到程序退出。原创 2016-08-15 01:52:40 · 783 阅读 · 0 评论 -
Linux-(C)Mysql API编程学习
1、初始化2、建立连接3、处理4、关闭连接代码如下:MYSQL m;mysql_init(&m); //初始化mysql_real_connect(&m,...); ..//建立连接... //处理mysql_close(&m); //关闭连接/* New connection without mysql_init(). */mysql_real_connect(&m,..原创 2016-08-08 22:05:31 · 921 阅读 · 0 评论 -
Linux-多进程通信学习(好文章)
最近在学习linux环境高级编程,多进程编程算是编程中的最重要的一个部分了,本文让我学习和明白了很多,所以转载过来。让更多想多线程编程的人学习。只有顶到首页才能让更多的人学习。文章摘要: 多线程程序设计的概念早在六十年代就被提出,但直到八十年代中期,Unix系统中才引入多线程机制,如今,由于自身的许多优点,多线程编程已经得到了广泛的应用。本文我们将介绍在Linux下编写多进程和多线程程序的一些初步知识。转载 2016-07-25 19:51:25 · 1672 阅读 · 0 评论 -
(Ubantu)使用gcc编译一个程序a.c成a.out,输入a.out运行,提示bash:a.out:command not found,怎么回事
前提是已经配置好环境了试试./a.out真的成功了。原创 2016-07-14 15:21:41 · 6808 阅读 · 0 评论 -
Linux-(C)多线程学习(入门)
另外自己写了一个多线程程序,实现两个程序聊天思路: 两个程序分别创建两个线程 (当然创建一个也行,跟主线程就两个,但为了代码美观,毕竟学习) 然后一个程序中两个线程分别读写管道 fofi1 fofi2。 另一个程序不同之处,读写管道相反 fofi2 fofi1原创 2016-07-26 19:33:43 · 3500 阅读 · 0 评论 -
Linux-GCC学习(C/C++)
GNU CC(GNU Compiler Collection, GNU编译器套件,简称GCC), 是GNU开发的编程语言编译器。GCC命令使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,编译代码支持性能优化等特点。现在很多程序员都应用GCC,怎样才能更好的应用GCC。目前,GCC可以用来编译C/C++、FORTRAN、JAVA、OBJC、ADA等语言原创 2016-07-15 20:58:22 · 2347 阅读 · 1 评论 -
cc、gcc、g++、CC的区别概括(好文章)
误区一:gcc只能编译C代码,g++只能编译C++代码。两者都可以,但请注意:(1)后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是C++程序,注意,虽然C++是C的超集,但是两者对语法的要求是有区别的。C++的语法规则更加严谨一些。(2)编译阶段,g++会调用gcc,对于C++代码,两者是等价的,但是因为gcc命令不能自动和C++程序使用的库联接,所以通常用g++来完成链接,为了统一起见,干脆编译/链接统统用g++了,这就给人一种错觉,好像cpp程序只转载 2016-07-17 00:02:54 · 1197 阅读 · 2 评论 -
GDB十分钟教程(转载自Liigo老师)
GDB十分钟教程作者: liigo原文链接: http://blog.youkuaiyun.com/liigo/archive/2006/01/17/582231.aspx日期: 2006年1月16日本文写给主要工作在Windows操作系统下而又需要开发一些跨平台软件的程序员朋友,以及程序爱好者。GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的转载 2016-07-17 13:56:22 · 930 阅读 · 0 评论 -
Linux-(C)网络编程学习socket(初步)
3、TCP、UDP(区别)3.1、TCP有点 3.1.1、数据可靠、不重复 3.1.2、假如数据块过大(一次发送不出去),那么tcp将会拆分成更小块数据发出去,无需程序员处理3.2、TCP缺点 3.2.1、需要保持一个链接,给系统带来开销大 3.2.2、传输效率低3.3、UDP优点(优缺点基本跟TCP相反) 3.3.1、不需要保持一个链接 3.3.2、不会因为对方没有接受数据而带来系统开销 3.3.3、对网络带宽比比TCP小3.4、UDP缺点 3.4.1、没办法保证数据正确传输出去(转载 2016-07-28 15:56:35 · 2689 阅读 · 0 评论 -
Linux-C 聊天程序学习(socket+pthread)
主要学习socket编程。实现client跟server随意聊天(TCP协议)。只允许一个server跟一个client 聊天,不能群聊利用多线程实现,聊天双方各创建两个线程:实现发送和接受消息。(代码都有详细注释)。原创 2016-07-28 20:00:45 · 6217 阅读 · 2 评论 -
Linux-字符编码转换学习
linux字符串转化使用方法第一步iconv_open(目标字符集,源字符集)第二步iconv()实现字符集转化第三部iconv_close()关闭iconv要详细可以查APIiconv_t iconv_open (const char *tocode, const char *fromcode)size_t iconv (iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)原创 2016-07-29 17:06:22 · 3356 阅读 · 0 评论 -
Linux-(C)IO多路复用之select学习(转载)
1、基本概念 IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合: (1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用。 (2)当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。 (3)如果一个TCP服务器既要处理监听套接口,又要处理已连接套接口,一般也要用到I/O复用。 (4)如果一个...转载 2016-07-30 16:49:59 · 1200 阅读 · 0 评论 -
Linux-(C)IO多路复用之epoll学习(转载)
#include <sys/epoll.h>int epoll_create(int size);int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);int epoll_wait(int epfd, struct epoll_event * events, int maxevents, int timeout);转载 2016-07-30 19:32:01 · 711 阅读 · 0 评论 -
windows远程连接访问ubantu上Mysql
3306端口是不是没有打开?使用nestat命令查看3306端口状态:~# netstat -an | grep 3306tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN从结果可以看出3306端口只是在IP 127.0.0.1上监听,所以拒绝了其他IP的访问。原创 2016-08-17 00:19:07 · 900 阅读 · 0 评论 -
从sockaddr结构获取IP和端口
前言 从sockaddr结构中提取IP, 先将结构sockaddr转为sockaddr_in结构,然后用在利用相关API将其中的IP地址从网络格式转化我们熟悉点分十进制的字符串。一、sockaddr和sockaddr_in结构程序员不应操作sockaddr结构,sockaddr是给操作系统用的程序员应使用sockaddr_in来表示地址,sockaddr_in区分...原创 2018-07-20 21:53:32 · 20590 阅读 · 0 评论