LINUX开发
文章平均质量分 77
双刃剑客
双刃
展开
-
Linux 硬链接与软链接
1).删除符号连接f3,对f1,f2无影响;2).删除硬连接f2,对f1,f3也无影响;3).删除原文件f1,对硬连接f2没有影响,导致符号连接f3失效;4).同时删除原文件f1,硬连接f2,整个文件会真正的被删除。转载 2022-12-21 11:55:59 · 1503 阅读 · 0 评论 -
C 语言中 setjmp 和 longjmp
在 C 语言中,我们不能使用goto语句来跳转到另一个函数中的某个label处;但提供了两个函数——setjmp和longjmp来完成这种类型的分支跳转。后面我们会看到这两个函数在处理异常上面的非常有用。setjmp 和 longjmp 使用方法我们都知道要想在一个函数内进行跳转,可以使用goto语句(不知怎么该语句在中国学生眼中就是臭名昭著,几乎所有国内教材都一刀切地教大...转载 2019-12-16 10:46:31 · 182 阅读 · 0 评论 -
Linux下进程间通信方式与线程间通讯
线程和进程的基本问题https://www.cnblogs.com/wuyepeng/p/9859341.html线程和进程的比较1.进程是资源分配的基本单位。2.线程是独立调度的基本单位。3.在同一个进程中,线程的切换不会引起进程的切换。在不同的进程中进行线程切换,如从一个进程中的线程切换到另一个进程中的线程会引起进程的切换。4.一个进程至少包含一个线程,线程共享整个进程...转载 2019-11-10 22:51:49 · 1936 阅读 · 0 评论 -
深入研究socket编程(2)——I/O多路转接(select、pselect和poll)
转:https://blog.csdn.net/chenxun_2010/article/details/50488372 I/O多路转接:先构造一张有关描述符的列表,然后调用一个函数(select,pselect,poll),直到这些描述符中的一个已准备好进行I/O时,该函数才返回。在返回时,它告诉进程哪些描述符已准备好可以进行I/O。 poll、pselect和select这三...转载 2018-08-09 11:49:31 · 181 阅读 · 0 评论 -
深入研究socket编程(4)——并发服务器(TCP)
在迭代服务器中,服务器只能处理一个客户端的请求,如何同时服务多个客户端呢?在未讲到select/poll/epoll等高级IO之前,比较老土的办法是使用fork来实现。 网络服务器通常用fork来同时服务多个客户端,父进程专门负责监听端口,每次accept一个新的客户端连接就fork出一个子进程专门服务这个客户端。但是子进程退出时会产生僵尸进程,父进程要注意处理SIGCHLD信号和调用...转载 2018-08-14 10:33:48 · 1361 阅读 · 0 评论 -
深入研究socket编程(6)——高级I/O复用(select、poll 、 epoll)
问题聚焦: 前篇提到了I/O处理单元的四种I/O模型。 本篇详细介绍实现这些I/O模型所用到的相关技术。 核心思想:I/O复用 使用情景:客户端程序要同时处理多个socket。 客户端程序要同时处理用户输入和网络连接。 TCP服务器要同时处理监听socket和连接socket,这是使用最多的场合。 服务器要同时处理TCP请求和UDP请求。 服务器要...转载 2018-08-15 11:27:17 · 229 阅读 · 0 评论 -
网络编程socket之listen函数
转:https://www.cnblogs.com/fnlingnzb-learner/p/8523508.html摘要:listen函数使用主动连接套接口变为被连接套接口,使得一个进程可以接受其它进程的请求,从而成为一个服务器进程。在TCP服务器编程中listen函数把进程变为一个服务器,并指定相应的套接字变为被动连接。listen函数在一般在调用bind之后-调用accept之前调用,...转载 2018-08-08 14:52:56 · 159 阅读 · 0 评论 -
深入研究socket编程(1)-----socket之TCP回射服务器/客户端程序(详细了解SO_REUSEADDR)
转:https://blog.csdn.net/chenxun_2010/article/details/50487707unix环境高级编程-------socket(套接字)中对socket编程有了初步的了解,在本篇以及后续的博客中来深入探讨各种实例以及更多的socket编程技术。 serv.c 程序的功能是从客户端读取字...转载 2018-08-08 15:00:45 · 217 阅读 · 0 评论 -
深入研究socket编程(3)——使用select函数编写客户端和服务器
首先看原先《UNIX网络编程——并发服务器(TCP)》的代码,服务器代码serv.c:#include<stdio.h>#include<sys/types.h>#include<sys/socket.h>#include<unistd.h>#include<stdlib.h>#include<errno.h>...转载 2018-08-13 11:30:25 · 284 阅读 · 0 评论 -
实例浅析epoll的水平触发和边缘触发,以及边缘触发为什么要使用非阻塞IO
转:https://blog.csdn.net/liu0808/article/details/52980413一.基本概念 我们通俗一点讲:Level_triggered(水平触发):当被监控的文件描述符上有可读写事件发生时,epoll_wait()会通知处理程序去读写。如...转载 2018-08-16 11:26:07 · 200 阅读 · 0 评论 -
UNIX网络编程——select函数的并发限制和 poll 函数应用举例
转:https://blog.csdn.net/chenxun_2010/article/details/50489577一、用select实现的并发服务器,能达到的并发数,受两方面限制 1、一个进程能打开的最大文件描述符限制。这可以通过调整内核参数。可以通过ulimit -n来调整或者使用setrlimit函数设置, 但一个系统所能打开的最大数也是有限的,跟内存大小有关...转载 2018-08-16 11:55:15 · 182 阅读 · 0 评论 -
strcspn和strspn函数
C 库函数 - strcspn() C 标准库 - <string.h>描述C 库函数 size_t strcspn(const char *str1, const char *str2) 检索字符串 str1 开头连续有几个字符都不含字符串 str2 中的字符。即该函数返回 str1 中第一个在字符串 str2 中出现的字符下标。声明下面是 strcspn() 函...转载 2018-12-20 10:35:54 · 282 阅读 · 0 评论 -
Shell中 2>/dev/null
1、文件描述符Linux系统预留可三个文件描述符:0、1和2,他们的意义如下所示:0——标准输入(stdin)1——标准输出(stdout)2——标准错误(stderr)标准输出——stdout假设:在当前目录下,有且只有一个文件名称为123.txt的文件,这时我们运行这个命令【ls 123.txt】,就会获得一个标准输出stdout的输出结果:123.txt错误输出—...转载 2019-03-20 10:50:59 · 445 阅读 · 0 评论 -
找到linux中当前java的安装位置
转:https://www.cnblogs.com/lossingdawn/p/10856199.html先看java -version$java version "1.8.0_111"Java(TM) SE Runtime Environment (build 1.8.0_111-b14)Java HotSpot(TM) 64-Bit Server VM (build 25.111...转载 2019-07-08 11:20:28 · 130 阅读 · 0 评论 -
getsockname函数与getpeername函数的使用
转:https://blog.csdn.net/workformywork/article/details/24554813getsockname和getpeername函数getsockname函数用于获取与某个套接字关联的本地协议地址 getpeername函数用于获取与某个套接字关联的外地协议地址定义如下:#include<sys/socket.h>int...转载 2018-08-09 10:29:24 · 441 阅读 · 0 评论 -
linux中fd_set的内部实现
转:http://www.cnblogs.com/scope-beyound/p/3628217.html 一、在网络编程中,经常用到selec系统调用来判断套接字上是否存在数据可读,或者能否向一个套接字写入数据。其原型为: int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exc...转载 2018-07-26 09:22:08 · 356 阅读 · 0 评论 -
linux常用命令全拼
转:https://www.cnblogs.com/wangcp-2014/p/6539035.html命令缩写:pwd:print work directory 打印当前目录 显示出当前工作目录的绝对路径 ps: process status(进程状态,类似于windows的任务管理器) 常用参数:-auxf ps -auxf 显示进程状态 df: disk fre转载 2018-01-22 18:21:28 · 362 阅读 · 0 评论 -
$’\r’: 未找到命令的解决
执行.sh脚本时出现$’\r’: 未找到命令,是因为命令直接从windows 复制过来导致的yum install dos2unixdos2unix **.sh 进行转换再次执行即可转载 2016-10-30 12:33:52 · 8294 阅读 · 0 评论 -
git 自动转换行符的坑爹案例
转:http://blog.csdn.net/razorluo/article/details/42551691本人写的脚本都是在unix上运行的,但是编写有时候喜欢使用Git拉去到windows的ide进行编写,毕竟我的unix只有命令行的没有ide,殊不知有一天我的sh执行时出现错误-bash: ./dailytask.sh: /bin/sh^M: bad inte转载 2016-10-30 15:02:42 · 521 阅读 · 0 评论 -
cygwin介绍与国内安装源
cygwin的中国官方网站:http://www.cygwin.cn转:http://www.cygwin.cn/site/install/下载setup.exe安装Cygwin,您需要下载setup.exe,此程序根据您选择的软件包,再从互联网下载所有组件。点击此处从官网下载setup.exe安装1.双击setup.exe原创 2016-10-30 10:50:55 · 15779 阅读 · 0 评论 -
使用ssh正向连接、反向连接、做socks代理的方法
转:http://blog.csdn.net/linsanhua/article/details/173603691、用ssh做正向连接啥叫正向连接?就是client连上server,然后把server能访问的机器地址和端口(当然也包括server自己)镜像到client的端口上。命令:ssh -L [客户端IP或省略]:[客户端端口]:[服务器侧能访问的IP]转载 2017-02-05 15:03:12 · 564 阅读 · 0 评论 -
SSH做反向代理
转:http://blog.csdn.net/zokie/article/details/7190195说实话,我对反向代理这个概念并不熟悉,只是感觉以下要做的事是一个代理的逆向过程,故借此名词一用。 问题场景是这样的:我有两套Linux集群的访问权限,分别为A和B,它们互相独立。其中A、B集群均能访问外网,但只有A集群有公网IP,所以从外网直接登录B就不行。要解决的问题就是从转载 2017-02-05 15:06:31 · 504 阅读 · 0 评论 -
从外网 SSH 进局域网,反向代理+正向代理解决方案
ssh -f -N -D 127.0.0.1:1080 root@localhost -p 22ssh -CNfg -L 1081:localhost:1080 root@localhost转:https://segmentfault.com/a/1190000002718360相信很多同学都会碰到这样一个问题。在实验室有一台机器用于日常工作,当我回家了转载 2017-02-05 15:10:05 · 2665 阅读 · 0 评论 -
Linux如何查看与/dev/input目录下的event对应的设备
转:http://blog.csdn.net/myarrow/article/details/105826671. /dev/input目录 /dev/input目录下的事件都是在驱动中调用input_register_device(struct input_dev *dev)产生的。如我的盒子的/dev/input目录的内容如下:[cpp]转载 2017-02-16 16:02:24 · 1008 阅读 · 0 评论 -
Cygwin 安装 apt-cyg包管理器
http://blog.csdn.net/dujie1219/article/details/46706097从网上找了一下,发下都是一个套路,如下:但是尝试了一下,总是链接了失败,无法安装。后来在github 找到了资源,https://github.com/transcode-open/apt-cyg用如下命令可以安装:Git clone转载 2017-02-09 21:25:04 · 2518 阅读 · 0 评论 -
ssh 反向代理 外网访问内网
转:http://blog.sina.com.cn/s/blog_83dc494d0102vph3.html先明确一下概念 外网是有固定ip的机器,ssh可以之间连接上; 内网是类似公司局域网之类,有独立ip但是不能ssh,需要管理员做端口转发等等权限性操作才可以。文中用内网表示需要被访问的局域网内电脑,用外网表示局域网外电脑。转载 2017-01-23 00:40:11 · 4637 阅读 · 0 评论 -
非常详细的 Docker 学习笔记
转:http://m.blog.csdn.net/article/details?id=52041757一、Docker 简介Docker 两个主要部件:Docker: 开源的容器虚拟化平台Docker Hub: 用于分享、管理 Docker 容器的 Docker SaaS 平台 -- Docker HubDocker 使用客户端-服务器转载 2017-03-13 23:52:18 · 820 阅读 · 0 评论 -
linux下的GetModuleFileName函数
转:http://blog.csdn.net/wwwsq/article/details/1935618Windows有GetModuleFileName,而Linux没有GetModuleFileName。Linux的同仁们有很多理由说GetModuleFileName不好,比如文件可以有多个名字、socket也是文件、exe文件可能已经被删除等等,但是即使抛开平台移植的话题来说,G转载 2017-04-20 13:07:13 · 861 阅读 · 0 评论 -
Linux下使用popen()执行shell命令
转:http://www.cnblogs.com/caosiyang/archive/2012/06/25/2560976.html简单说一下popen()函数函数定义#include FILE * popen(const char *command , const char *type );int pclose(FILE *stream);函数说明 popen转载 2017-09-15 16:42:28 · 3288 阅读 · 0 评论 -
vim的保存文件和退出命令
转:http://blog.sina.com.cn/s/blog_5e357d2d0100zmth.html命令简单说明:w保存编辑后的文件内容,但不退出vim编辑器。这个命令的作用是把内存缓冲区中的数据写到启动vim时指定的文件中。:w!强制写文件,即强制覆盖原有文件。如果转载 2016-10-30 11:53:00 · 786 阅读 · 0 评论