C/C++编程札记:Unix AIX和Linux C语言库函数差别?
在这之前,先给大家简单介绍一下AIX:AIX(Advanced Interactive eXecutive)是IBM基于AT&T Unix System V开发的一套类UNIX操作系统,运行在IBM专有的Power系列芯片设计的小型机硬件系统之上。它符合Open group的UNIX 98行业标准(The Open Group UNIX 98 Base Brand),通过全面集成对32-位和64-位应用的并行运行支持,为这些应用...
2024-01-10Unix网络编程卷一源码编译踩坑记录ubtutu19.10
在阅读unpv1时运行源代码的环境配置,这里简单记录一下源代码里的README 写得挺详细的,但是在Linux 系统的下还是没办法直接编译通过的,这里我使用的是ubuntu 19.10(在腾讯云ubuntu server 18.04.1也测试通过)以下是简单的步骤:1.下载源码并解压2.解压源代码后得到unpv13e,3.开始编译cd unpv13e./configure c...
2024-01-10在Linux上以编程方式在C或C ++代码中为gdb设置断点
即:int main(int argc, char** argv){ /* set breakpoint here! */ int a = 3; a++; /* In gdb> print a; expect result to be 3 */ return 0;}回答:一种方法是发出中断信号:#include <csignal>// Generate an interruptstd::raise(SIGINT);在C中:#include <signal.h>raise(SIG...
2024-01-10Unix网络IO模型介绍
带着问题阅读1、什么是同步异步、阻塞非阻塞2、有几种IO模型,不同模型之间有什么区别3、不同IO模型的应用场景都是什么同步和异步、阻塞和非阻塞同步和异步广义上讲同步异步描述的是事件中发送方和接收方之间的关系。当发送方必须依赖接收方的响应结果(无论正确与否)才能进行下一...
2024-01-10如何在Linux上以编程方式获取堆的地址
我可以使用来获取堆末尾的地址sbrk(0),但是除了解析内容之外,有什么方法可以以编程方式获取堆头的地址/proc/self/maps吗?回答:我认为解析/proc/self/maps是Linux上找到堆段的唯一可靠方法。并且不要忘记某些分配器(包括我的SLES中的分配器)确实用于大块,mmap()因此内存不再是堆的一部分,可以位于...
2024-01-10Linux下C语言实现C/S模式编程
由标题可知,这篇文章主要讲如何用C语言实现一个C/S模式的程序。主要功能:时间回送。客户机发出请求,服务器响应时间,并返回服务器时间,与客户机进行同步。废话不多说,下面直接贴出源代码。代码如下:#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <errno.h> #inclu...
2024-01-10Lua下基本的网络编程示例
Lua是高度灵活的语言,它往往是在多个平台,包括Web应用程序中使用。成立2004年的Kepler社区提供Lua的Web组件开放源码。虽然,也有使用Lua已经开发了其他的web框架,我们将主要集中在Kepler社区提供的组件。应用程序和框架 Orbit 是一个lua的MVC Web框架,它是基于WSAPI。 WSAPI是从Lua的Web应用程...
2024-01-10Linux网络编程示例
简单TCP、UDP编程示例。 linux网络编程示例简单TCP、UDP编程示例。TCPTCP通信模型服务器代码#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <errno.h>#include <stdio.h>#include <unistd.h>#includ...
2024-01-10Linux系统编程—线程间通信
大家知道,互斥锁可以用于线程间同步,但是,每次只能有一个线程抢到互斥锁,这样限制了程序的并发行。如果我们希望允许多个线程同时访问同一个资源,那么使用互斥锁是没有办法实现的,只能互斥锁会将整个共享资源锁住,只允许一个线程访问。这种现象,使得线程依次轮流运行,也就是线程...
2024-01-10Win32API编程——前言
一丶什么是Win32 API? 简单来说,就是微软为了保护操作系统的安全性和稳定性,不允许运行在用户层的进程随意操控系统内核,而是必须按照一定方式。我们用户层要与系统内核层交互(比如对内存、进程操作),只能通过调用Windows内核层提供的接口函数,也就是Win32API来操控。这些API以DLL(动态链...
2024-01-10Linux系统编程 —线程属性
在之前的章节中,我们在调用pthread_create函数创建线程时,第二个参数(即线程属性)都是设为NULL,即使用默认属性。一般情况下,使用默认属性已经可以解决我们开发过程中的大多数问题。但是,有时项目中我们对线程会有些特殊的要求,比如修改线程栈的大小,直接调用线程的库函数无法满足需求...
2024-01-10Linux下LNMP环境搭建博客网站(全过程)
通常我们所说的LNMP是指一个网站基本的组织框架,即Linux系统支持,Nginx静态服务,Mysql数据库支持以及PHP动态编程语言支持。目前Mysql数据库被Oracle数据库分析公司收购,其创始人以自己女儿的名字命名并同时开发了一个数据库,名为MariaDB数据库,数据库操作语法和语句基本与Mysql一致,对我们的操作...
2024-01-10[Linux环境编程学习笔记_1]:I/O文件与目录
目录文件和目录1. 文件系统2. 文件属性结构体3. 文件信息3.1 文件类型3.2 设置位3.3 文件所有权3.4 文件权限操作接口3.4.1 文件权限屏蔽字 umask3.4.2 文件权限测试 access 和 faccessat3.4.3 文件权限修改函数 chmod,fchmod,fchmodat4. 文件所有者5. 文件链接5.1 硬链接5.2 符号链...
2024-01-10【Java】【9k字+】第二篇:进阶:掌握 Redis 的一些进阶操作(Linux环境)
首页专栏java文章详情0【9k字+】第二篇:进阶:掌握 Redis 的一些进阶操作(Linux环境)BWH_Steven发布于 40 分钟前九 Redis 常用配置文件详解能够合理的查看,以及理解修改配置文件,能帮助我们更好的使用 Redis,下面按照 Redis 配置文件的顺序依次往下讲1k 和 1kb,1m 和 1mb 、1g 和 1gb 的大小是...
2024-01-10【Linux连接数据库环境的私有云搭建】Linux都没有,怎么学Linux编程?
本文准备从0开始,一步步搭建一套属于自己的多节点Linux系统环境,这将是后续学Linux、用Linux、Linux环境编程、应用和项目部署、工具实验等一系列学习和实践的基石,希望对小伙伴们有帮助。提前备好Linux编程实验环境非常重要,建议人手一套,这样以后每当学完一个理论知识需要实践时,立马就可...
2024-01-10【nginx】pm2 同台服务器部署不同的环境
我想在同一台服务器上部署不同的开发环境用pm2 守护,但是一直配置不成功,有遇到过的大佬给说一下呗!这是我的配置文件module.exports = {apps : [{name: '',append_env_to_name: true,script: './server.js',exec_mode: "cluster_mode",instances: "max",max_memory_restart: 8,autorestart: true,watch: false,env: {"NODE_ENV": "...
2024-01-10详解Linux的SOCKET编程
本篇文章对Linux的SOCKET编程进行了详细解释,文章后面分享了一个编程实例供大家学习。1. 网络中进程之间如何通信进程通信的概念最初来源于单机系统。由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进程之间既互不干扰又协调一致工作,操作系统为进程通信提供了相应设施,如U...
2024-01-10Linux系统编程 —并行性竞态
时序竞态什么是时序竞态?将同一个程序执行两次,正常情况下,前后两次执行得到的结果应该是一样的。但由于系统资源竞争的原因,前后两次执行的结果有可能得到不一样的结果,这个现象就是时序竞态。pause函数函数原型:int pause(void);函数作用:进程调用pause函数时,会造成进程主动挂起(...
2024-01-10Linux系统编程 —并行性竞态
时序竞态什么是时序竞态?将同一个程序执行两次,正常情况下,前后两次执行得到的结果应该是一样的。但由于系统资源竞争的原因,前后两次执行的结果有可能得到不一样的结果,这个现象就是时序竞态。pause函数函数原型:int pause(void);函数作用:进程调用pause函数时,会造成进程主动挂起(...
2024-01-10Linux编程之ICMP洪水攻击
我的上一篇文章《Linux编程之PING的实现》里使用ICMP协议实现了PING的程序,ICMP除了实现这么一个PING程序,还有哪些不为人知或者好玩的用途?这里我将介绍ICMP另一个很有名的黑科技:ICMP洪水攻击。 ICMP洪水攻击属于大名鼎鼎的DOS(Denial of Service)攻击的一种,一种是黑客们喜欢的攻击手段,这里本...
2024-01-10并发编程的艺术07非阻塞同步演进
前言不知道大家有没有发现几乎每个专业领域中都充斥着很多抽象的专业名词,如果没有相关的基础知识很难知道这些专业名词是什么意思,就比如说我们的这个标题“粗粒度同步”。川建国听了想骂娘,什么是TMD“粗粒度同步”?最近我对理查德·费曼做了一些了解,他在阐述一个事物的时候强调...
2024-01-10Linux系统编程 —堆区之fsync
共享内存概念共享内存是通信效率最高的IPC方式,因为进程可以直接读写内存,而无需进行数据的拷备。但是它没有自带同步机制,需要配合信号量等方式来进行同步。共享内存被创建以后,同一块物理内存被映射到了多个进程地址空间,当有一个进程修改了共享内存的数据,其余的进程均可看见所...
2024-01-10Linux系统编程 —读写锁rgwock
读写锁是另一种实现线程间同步的方式。与互斥量类似,但读写锁将操作分为读、写两种方式,可以多个线程同时占用读模式的读写锁,这样使得读写锁具有更高的并行性。读写锁的特性为:写独占,读共享;写锁优先级高。对于读写锁,掌握了这12个字就足矣了。Linux环境下,读写锁具有以下三种状...
2024-01-10老白学编程Cgroup插件
为什么要cgroup统一将进程进行分组,并在分组的基础上对进程进行监控和资源控制管理等。subsystemcgroup 是 Linux 下的一种将进程按组进行管理的机制,在用户层看来,cgroup 技术就是把系统中的所有进程组织成一颗一颗独立的树,每棵树都包含系统的所有进程,树的每个节点是一个进程组,而每颗树又...
2024-01-10Ruby元编程的一些值得注意的地方
避免无限循环的元编程。 写一个函数库时不要使核心类混乱(不要使用 monkey patch)。 代码块形式最好用于字符串插值形式。 当你使用字符串插值形式,总是提供 __FILE__ 和 __LINE__,使得你的回溯有意义。 class_eval 'def use_relative_model_naming?; true; end', __FILE__, __LINE__ def...
2024-01-10