1、每隔一秒打印进程信息目的:用于检测自动重启服务for((i=0;i<1000;++i));dops-fe|greppython;sleep1;echo"==================";done2、kill掉进程名为python的进程目的:用于删除名为python的多个进程,常用场景:多进程kill-9$(ps-ef|greppython|awk'{pr
socks协议介绍:来源于:http://blog.chinaunix.net/uid-26548237-id-3434356.html1、防火墙的概念 防火墙的使用,有效的隔离了机构内部网络和外部网络,这种类型的Internet架构变得越来越流行了。这种防火墙系统大都充当着网络之间的应用层网关的角色,通常提供经过控制的Telnet、FTP和SMTP访问。为了推动全球信息的交流,更多的新
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、
缓冲分为:无缓冲(直接输出) 行缓冲(遇'\n'输出或fflush) 全缓冲(fflush)下面的程序一共输出多少个“-”?()#include <stdio.h> #include <sys/types.h> #include <unistd.h> 
硬中断:1. 硬中断是由硬件产生的,比如,像磁盘,网卡,键盘,时钟等。每个设备或设备集都有它自己的IRQ(中断请求)。基于IRQ,CPU可以将相应的请求分发到对应的硬件驱动上(注:硬件驱动通常是内核中的一个子程序,而不是一个独立的进程)。2. 处理中断的驱动是需要运行在CPU上的,因此,当中断产生的时候,CPU会中断当前正在运行的任务,来处理中断。在有多核心的系统上,一个中断通常只能中断一颗CPU
硬链接就是让链接文件的i节点号指向被链接文件的i节点硬链接和符号连接都是产生一个新的i节点链接分为硬链接和符号链接硬连接不能链接目录文件LINUX的硬链接不能链接到目录是因为引入了对目录的硬连接就有可能在目录中引入循环,在目录遍历的时候系统就会陷入无限循环当中,这样导致无法定位到访问目录。 硬链接:为原文件创建一个新的文件名,但本质中只增加了一个目录项,并使用与原来相等的inode,指向
所谓死锁: 是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。死锁的发生必须具备以下四个必要条件1)互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,则请求者只能等待,直至占有资源
在实际的软件开发过程中,经常会碰到如下场景:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。产生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。单单抽象出生产者和消费者,还够不上是生产者/消费者模式。该模式还需要有一个缓冲区处于生产者和消费者之间,作为一个中介。生产者把数据放入缓冲区,而消费者从缓冲区取出数据。◇解耦假设生产
网络编程中设计并发服务器,使用多进程与多线程,有什么区别?1,进程:子进程是父进程的复制品。子进程获得父进程数据空间、堆和栈的复制品。2,线程:相对与进程而言,线程是一个更加接近与执行体的概念,它可以与同进程的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。两者都可以提高程序的并发度,提高程序运行效率和响应时间。线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源管理和保护;而进程
1exec函数说明fork函数是用于创建一个子进程该子进程几乎是父进程的副本而有时我们希望子进程去执行另外的程序exec函数族就提供了一个在进程中启动另一个程序执行的方法。它可以根据指定的文件名或目录名找到可执行文件并用它来取代原调用进程的数据段、代码段和堆栈段在执行完之后原调用进程的内容除了进程号外其他全部被新程序的内容替换了。另外这里的可执行文件既可以是二进制文件也可以是Linux下任何可执行
操作系统: 1.有效的控制硬件资源的分配。 2.提供计算机运行所需要的网络功能。 3.提供一整套系统调用接口来给程序员开发用。如果能够参考硬件的功能函数并修改你的操作系统程序代码,那经过改版后的操作系统就能够在另一个硬件平台上面运行了,这个操作称为软件移植。vi
进程:程序在内存中的一个实例。Linux进程控制块(PCB描述进程)Linux操作系统:多个进程,多个PCB,方便管理(组织起来),调度一个执行。进程(虚拟地址): 命令行参数和环境变量 栈 共享映射区 堆 
进程间通信就是在不同进程之间传播或交换信息,那么不同进程之间存在着什么双方都可以访问的介质呢?进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享内存区。但是,系统空间却是“公共场所”,所以内核显然可以提供这样的条件。除此以外,那就是双方都可以访问的外设了。在这个意义上,两个进程当然也可以通过磁盘上的普通文件交换信息,或者通过“注册表”或其它数据库中的某些表项和记录交换信息。广义
互斥量和信号量的区别1. 互斥量用于线程的互斥,信号量用于线程的同步。这是互斥量和信号量的根本区别,也就是互斥和同步之间的区别。互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是
Transaction 也就是所谓的事务了,通俗理解就是一件事情。从小,父母就教育我们,做事情要有始有终,不能半途而废。 事务也是这样,不能做一般就不做了,要么做完,要么就不做。也就是说,事务必须是一个不可分割的整体,就像我们在化学课里学到的原子,原子是构成物质的最小单位。于是,人们就归纳出事务的第一个特性:原子性(Atomicity)。我靠,一点都不神秘嘛。特别是在数据库领域,事务是一个非常重要
符号重定位讲动态链接之前,得先说说符号重定位。c/c++ 程序的编译是以文件为单位进行的,因此每个 c/cpp 文件也叫作一个编译单元(translation unit), 源文件先是被编译成一个个目标文件, 再由链接器把这些目标文件组合成一个可执行文件或库,链接的过程,其核心工作是解决模块间各种符号(变量,函数)相互引用的问题,对符号的引用本质是对其 在内存中具体地址的引用,因此确定符号地址
//main_client.cpp #include"udp_client.h" udp_client _cl; udp_data ud; string _name; string _school; void* draw_header(void* arg) { chat_window*&nb
linux系统下遇到cannot execute binary file的问题,一般由以下情况造成:非root用户或者无执行权限编译环境不同(程序由其他操作环境复制过来)对于第一种情况,采用增加执行权限即可chmod +x program对于第二种情况,建议将该程序二进制包拷贝过来,重新编译程序。注:因为我在实际操作过程中发现我将美国的VPS的整个操作系统环境打包后下载到本地服 务器上解压后运行其
cp命令与mv命令在很多功能上都非常的相似,但是这两个命令又具有着很大的区别,其中最明显的区别也是使用中需要注意的就是cp命令的使用会保留源文件与目录,而mv命令的使用会将源文件与目录删除。如果希望复制文件,可以直接使用命令 cp 源文件 目的文件 来完成,命令输入后系统会在当前目录下复制,如果目的文件名存在则内容被重写,如果目的文件名不存在系统将会创建。如果希望剪切文件或者是重命名文件
//server #include<iostream> using namespace std; #include<Winsock2.h> #include<stdlib.h> #include<time.h> #include<vector> #include<string> #include<Wi
//chat_window.h #pragma once #include<iostream> #include<string.h> #include<string> #include<ncurses.h> #include<pthread.h> #include<unistd.h> #include"comm.h"
//my_json.h #include"comm.h" #include<iostream> #include<string> #include"json/json.h" using namespace std; class my_json { public:  
//data_pool.h #include<iostream> #include<vector> #include <semaphore.h> #include"comm.h" using namespace std; #define _CAP_ 256 class data_pool {  
//udp_client.h #include<iostream> #include<sys/types.h> #include<sys/socket.h> #include<netinet/in.h> #include<arpa/inet.h> #include<stdio.h> #include<string.h&g
sortcutuniq
#!/bin/bash quit(){ clear echo "***************************************" echo "* Thank you to use &nb
#/bin/bash #score.sh #color function colour() { case $1 in black_white) echo -e&nbs
#include<stdio.h> #define _GNU_SOURC #include<fcntl.h> #include<stdlib.h> #include<signal.h> #include<unistd.h> static void handler_d(int sig,siginfo_
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号