标签 int 下的文章

  • 📂Linux:匿名管道的非阻塞属性教程

    如何将文件描述符设置为非阻塞:#include<fcntl.h> int fcntl(int fd, int cmd, …) fcntl函数有两个功能:查看属性设置非阻塞属性:O\_NONBLOCK参数:fd:文件描述符cmd:告诉fcntl函数做什么事情,由两个宏去告诉arg:可变参数列表,在设置属性时要保留原属性F\_GETFL获取一个文件描述符的权限,忽略ar...

  • 📂第11天 构造器、创建对象内存分析、三大特征之封装、继承教程

    构造器详解![image-20210805143017983]()package com.oop.Demo02; //java----->class public class Person { String name; int age; //实例化初始值 //1.使用new关键字,本质实在调用构造器,必须要有构造器 //2.用来初始化值 ...

  • 📂C++核心编程 1 程序的内存模型教程

    1、内存分区模型C++程序在执行时,将内存大方向划分为4个区域代码区:存放函数体的二进制代码,由操作系统进行管理(写的所有代码都在代码区)全局区:存放全局变量、静态变量以及常量栈 区:由编译器自动分配释放,存放函数的参数值,局部变量等堆 区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收内存四区的意义:不同区域的数据,赋予不同的生命周期,给我们更大的灵活编程程序运行前:在程序编...

  • 📂Linux_C阶段小项目教程

    基于C命令行的随机点名器项目描述使用C语言,制作一个在命令行运行的点名程序,该程序运行时可指定班级的花名册文件,运行后在界面上显示随机抽取名字的过程,速度由快到慢,逐渐定格到某一个“幸运儿”上,程序结束。功能要求指定普通文本文件(*.txt)为名单,以行为单位读取学生名字.随机抽取的过程在终端动态展示出来,速度呈慢-快-慢渐变效果.从名单中抽取名字后,将名单中相应的名字去掉.可以一次抽取若干...

  • 📂UNIX进程间通信教程

    UNIX进程间通信方式目录无名管道有名管道共享内存消息队列信号灯1.无名管道1.1example:1.1.1无名管道为一种半双工通信方式,需要双方通信时,需要建立起两个管道,只能用于父子进程和兄弟进程之间的通信。 1.1.2无名管道单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种文件系统,并且只存在与...

  • 📂Linux C/C++面试题汇总教程

    Linux C/C++面试题汇总前言计算机基础程序的内存空间进程和线程相关关键字conststaticvolatileC/C++指针前言最近面试的比较多,看了很多关于面试的内容,有些平时工作用的比较少或者没有主要到的地方,长时间不看就会忘记,如果下次面试还需要再次找这些东西比较麻烦,所以写此篇文章就是为了方便以后面试,也给一些即将面试的人提供一些帮助。以后如果面试有新的值得关注的问题作者会及...

  • 📂Linux进程锁方案(内附代码封装)教程

    1)互斥锁多进程之间同步可以用互斥锁进行实现,默认情况下,互斥锁的属性是在一个进程的多线程使用的。多进程因为分开之后内存是相对独立的,所以要实现进程间互斥锁,必须要把互斥锁放在共享内存里使用,在 pthread\_mutex\_init 初始化之前,修改其属性为进程间共享,即设置互斥锁的属性为PTHREAD\_PROCESS\_SHARED。但是,如果某个进程在获得了锁之后崩溃并且未释放锁,...

  • 📂Linux C中常用的操作文件的函数教程

    打开文件: FILE* fopen(const char* path, const char* mode) 返回值:指向文件的指针;如果出现错误,返回NULL并设置errno变量;如果文件不存在,则以666权限创建此文件 mode为文件的打开方式,可取值有:r只读、r+读写、w只写、w+读写、a只追加、a+读与追加关闭文件: int fclose(FILE* stream) 返回值:关闭成功...

  • 📂【linux进程间通信】1.信号教程

    一、何为进程间通信1.进程是一个独立的资源分配单元,不同进程(用户进程)之间的资源是独立的,没有关联,不能再一个进程中访问别的进程的资源。而实际情况下不同进程间常常需要交互来传递状态等信息,所以需要进程间的通信。2.进程间通信功能:数据传输:一个进程需要将它的数据发送给另一个进程。资源共享:多个进程之间共享同样的资源。通知事件:一个进程需要向另一个或一组进程发送消息,通知它们发生了某种事件。...

  • 📂十、多进程服务器端教程

    文章目录一、相关操作函数1. 创建进程函数2. 防止出现僵尸进程的函数3. 信号处理函数二、基于多任务的并发服务器1. 基于进程的并发服务器模型2. 代码实现3. 通过fork函数复制文件描述符三、基于多进程的客户端读写分离1. 代码实现至于什么是多进程,这里不展开叙述,可以去查阅相关技术资料,在本章中使用到的技术有:多线程编程以及信号处理,如果对这些技术不太熟悉可以自行查看相关资料。这里只...

  • 📂linux虚拟文件系统(一)-文件系统架构教程

    Linux支持的文件系统有很多,比如Ext2、ext3、ext4、Reiserfs、Xfs、jfs、vfat、NTFS、ubifs等等。Linux为了屏蔽这些不同文件系统之间接口的差异,抽象出了虚拟文件系统(VFS),为下层的文件系统提供统一的系统调用接口。VFS使得用户可以直接使用open,read,write这样的系统调用而无需考虑具体的文件系统弄和介质。 Linux能够支持各种不同...

  • 📂linux之pipe函数实现ls | wc –l教程

    1.原型:int pipe(int pipefd[2]);2.返回值:成功:0;失败:-1,设置 errno3.函数调用成功返回 r/w 两个文件描述符。无需 open,但需手动 close。规定:fd[0] → r; fd[1] → w4.管道创建成功以后,创建该管道的进程(父进程)同时掌握着管道的读端和写端。5.利用pipe函数实现 ls | wc –l。假定父进程实现 ls,子进程实现...

  • 📂java全栈系列之JavaSE--数组的三种初始化方法及内存分析024教程

    java内存分析 堆中存放new出来的对象和数组,存放具体的值的变量存放在栈里面在定义和创建数组的时候内存发生了什么? 当用户定义了一个数组,例如:int [ ] Array;只是定义了一个数组没有创建。这时在栈里记录了一个int类型的数组Array,但是栈里面并没有存放数组里面的数据,当用户创建数组是,例:int [ ] Array=new int[5];在内存空间的堆创建了...

  • 📂类unix的Linux操作系统的静态库和动态库的使用教程

    静态库1.mkdir staticdir2.cd staticdir/3.vi add.h#ifndef _ADD_H__ #define _ADD_H__ int add(int n,int m); #endif vi add.c#include "add.h" int add(int n,int m){ return n+m; } vi min.h#...

  • 📂Linux中c程序命令行参数解析教程

    在Linux中,较为复杂的C程序命令行参数的解析通常使用getopt, getopt_long以及getopt_long_only来进行,如下所示。#include <unistd.h> int getopt(int argc, char *const argv[], const char *optstring); extern char *optarg...

  • 📂centos离线安装dockerrpm教程

    4步套路,解决动态规划问题1、确定问题状态提炼最后一步的问题转化2、转移方程,把问题方程化 3、按照实际逻辑设置初始条件和边界情况 4、确定计算顺序并求解结合实例感受下:你有三种硬币,分别面值2元,5元和7元,每种硬币都有足够多。买一本书需要27元。如何用最少的硬币组合正好付清,不需要对方找钱?关键词“用最小的硬币组合正好付清”——“最小的组合”,求最值问题,动态规划。**正常人第一...

  • 📂内存四区模型C/C++教程

    1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和...

  • 📂Linux下分文件编程教程

    分文件编程(一) 分文件编程的意义分模块编程思想功能责任划分清晰方便调试主程序简洁(二) 应用加法函数编写于文件plus.c,减法函数编写于文件minus.c,主程序main.c(1) 方式一主程序main.c#include <stdio.h> #include "config.h" int main() { int a = 0; ...

  • 📂linux驱动之LED驱动教程

    通过之前的学习,了解到linux驱动编写的流程是:先通过注册函数注册我们编写的入口函数,然后在入口函数中获取设备号->注册字符设备->自动创建设备节点->获取设备树信息,最后通过销毁函数将出口函数中需要释放的资源进行释放,想知道具实现的小伙伴可以查看我之前的文章。完成之前的学习,这篇文章所涉及的知识就比较简单了,现在我们开始led驱动的学习。一、准备材料开发环境:VMwar...

  • 📂Android 开发学习进程0.32 dwonloadmanager使用教程

    downloadmanager时Android系统下载器,使用系统下载器可以避免用stream流读入内存可能导致的内存溢出问题。以下为downloadmanager初始化部分。apkurl为下载网络路径。Environment.DIRECTORY\_DOWNLOADS 为系统的下载路径。即下载至外部存储。 mDownloadManager = (DownloadManager) getS...

  • 📂字符设备驱动-Linux驱动学习(5)教程

    【学习笔记】一、申请字符类设备号1、字符设备和杂项设备的区别================================================================================(1)设备号的不同:杂项设备的主设备号是固定的,固定为10,而字符类设备需要我们自己或者系统来给我们分配。(2)设备节点的生成方式不同:杂项设备可以自动生成设备节点,而字符设...

  • 📂Linux下进程间通信方式——共享内存教程

    1.什么是共享内存?共享内存就是允许两个或多个进程共享一定的存储区。就如同 malloc() 函数向不同进程返回了指向同一个物理内存区域的指针。当一个进程改变了这块地址中的内容的时候,其它进程都会察觉到这个更改。因为数据不需要在客户机和服务器端之间复制,数据直接写到内存,不用若干次数据拷贝,所以这是最快的一种IPC。 注:共享内存没有任何的同步与互斥机制,所以要使用信号量来实现对共享内存的存...

  • 📂C语言 求一个整数存储在内存中的二进制中 1 的个数教程

    目录(涉及知识点)方法一:先取模,再进行除运算算数操作符方法二:与运算、右移、for循环、if判断位操作符移位操作符方法三:whlie循环、与运算 ——最高效的-方法一:先取模,再进行除运算-#include<stdio.h> int main() { int num = 0; scanf("%d", &num); int c...

  • 📂Leetcode-888:公平的糖果棒交换(用时击败98.31%内存击败80.34%方案)教程

    目录题目链接题目示例提示思路C++ Code结果总结-题目链接 https://leetcode-cn.com/problems/fair-candy-swap/题目爱丽丝和鲍勃有不同大小的糖果棒:A[i] 是爱丽丝拥有的第 i 根糖果棒的大小,B[j] 是鲍勃拥有的第 j 根糖果棒的大小。因为他们是朋友,所以他们想交换一根糖果棒,这样交换后,他们都有相同的糖果总量。(一个人拥有的糖果总量是...

  • 📂Linux下的C++ Socket网络编程教程

    Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。即Socket提供了操作上述特殊文件的接口,使用这些接口可以实现网络编程。Socket通信流程图TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,在正式通信之前必须建立起连接。UDP(User Data Protocol,用户数据报协议)是一个非连接的协议。因此TCP...

  • 📂动态内存分配的方法实现冒泡排序教程

    #include<stdio.h> #include<stdlib.h> void bubble(int a[], int n) { int i,j,temp; for(i=0;i<n-1;i++) { for(j=0;j<n-1-i;j++) { if(a[j]>a[j...

  • 📂linux缓存同步教程

    缓存同步 : 为了保证磁盘系统与缓冲区中内容一致,Linux 系统提供了 sync、fsync 和fdatasync 三个函数.函数描述:向打开的文件写数据; 成功返回0,若出错,返回-1。头文件:#include <unistd.h>int fsync(int fd);int fdatasync(int fd);void sync(void);说明:sync - 将所有修改过的...

  • 📂判断文件或文件夹(目录)是否存在 C/C++ win/linux通用教程

    一、windows下使用\_access()或linux下使用access()函数windows下使用\_access()函数所在头文件:<io.h> 函数原型:int _access(const char* _Filename, int _AccessMode); \_Filename:文件或文件夹(目录)路径,可为绝对路径、相对路径; \_AccessMode:指...

  • 📂Linux - 实现高并发HTTP服务器(只处理GET请求)教程

    Linux - 实现高并发HTTP服务器[只处理GET请求]一、HTTP协议请求格式1. 客户端请求2. 服务器响应3. 项目中用到的响应代号二、项目实现一、HTTP协议请求格式1. 客户端请求客户端发送一个HTTP请求到服务器的请求消息包括如下格式:请求行(request line)、请求头部(header)、空行和请求数据四部分组成 2. 服务器响应服务器响应客户端的HTTP响应数据...

  • 📂Linux内核字符设备开发小例子教程

    其实很简单,简单理解了字符设备之后就是一个套模板编程呢个的问题了。这边简单的放一个例子首先简要说明目录结构:我是在内核代码下直接新建了一个自己的chrdev\_test的文件夹,下面这些文件都放在该目录下。如果你不想这么做的话,起码要保证的是下面的.c和Makefile文件在一个目录下,不然没办法完成编译#include <linux/module.h> #include <...