自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 问答 (1)
  • 收藏
  • 关注

原创 调用strncpy没有马上生效,并且同时复制了下一行的内容

今天使用strncpy遇到了一个奇怪的现象。在先后调用两次strncpy复制不同的内容时,第一次打印的内容的末尾同时打印出了第二次的内容。伪代码如下:strncpy(structA.stringA, structB.stringA, sizeof(structA.stringA)-1);strncpy(structA.stringB, structB.stringB, sizeof(structA.stringB)-1);cout << structA.stringA <<

2021-11-10 16:40:33 134

原创 Linux基础编程——线程

线程一、基本概念二、POSIX线程三、线程管理四、线程的执行轨迹五、线程的终止六、线程属性七、竞争与同步基本概念八、互斥量(互斥锁)九、信号量十、死锁十一、条件变量十二、生产者与消费者模型一、基本概念1、线程就是进程的进程路线,它是进程内部的控制序列,或者说它是进程的一部分(进程是一个资源单位,线程是的一部分负责真正的执行)。2、线程是轻量级的,没有自己独立的代码段、数据段、bss段、堆、环境变量、命令行参数、文件描述符、信号处理函数、当前目录等资源。3、线程有自己独立的栈内存、线程ID、错误码、信

2020-09-08 10:28:03 115

原创 Linux编程基础——网络通信

网络通信套接字TCP网络通信编程模型多路复用本地字节序与网络字节序转换IPv4地址转换UDP网络通信UDP网络通信编程模型UDP广播通信套接字基本特点:socket是一种接口技术,被抽象成一个文件操作,可以让进程之间通信,也可以让不同计算机的进程通信(网络)。int socket(int domain, int type, int protocol);功能:创建套接字domain: AF_UNIX/AF_LOCAL 本地通信,进程间通信 AF_INET 基于IPv4地址通信

2020-09-08 09:42:02 137

原创 Linux基础编程——进程间通信

进程间通信基本概念传统进程间通-管道XSI进程间通信共享内存消息队列信号量基本概念什么是进程间通信:是指两个或多个进程之间交互数据的过程,因为进程之间是相互独立,为了协同工作必须交互数据。进程间通信的分类: 简单的进程间通信:信号、文件、环境变量、命令行参数。 传统的进程间通信:管道文件(有名管道、匿名管道) XSI进程间通信:共享内存、消息队列、信号量。 网络进程间通信:套接字传统进程间通-管道管道是UNIX系统中最古老的进程间通信方式,古老就意味着所有系统都支

2020-09-07 17:25:22 94

原创 Lunix编程基础——进程

Linux编程基础——进程基本概念创建进程进程的正常退出进程的异常终止子进程回收基本概念1、进程与程序 程序就是存储在磁盘上的可执行文件,程序被加载到内存中开始运行叫进程。一个程序可以被多次加载生成多个进程,进程就是处于活动状态的计算机程序。2、进程的分类 进程一般分为三种类型:交互进程、批处理进程、守护进程。 守护进程一般都处于活跃状态,运行在后台,由于系统在开机时通过启动脚本自动创建的。3、查看进程 简单形式:ps 显示当前用户有控制终端的进程信息。

2020-09-07 17:09:47 99

原创 Linux编程基础——信号

Linux编程基础——信号基本概念信号捕获信号的发送进程休眠与信号信号集与信号阻塞带附加的信号处理定时器基本概念1、中断 当程序接收消息后中止当前正在执行的程序,转而执行其它任务,等其它任务执行 完成后再返回,这种执行模式叫中断,分为硬件中断和软件中断。2、信号 是一种软件中断,由操作系统发出,程序接收后会执行相应的操作。3、常见信号 kill -l 显示所有信号 SIGINT Ctrl+c 终止 SIGQUIT Ctrl+\

2020-09-07 16:52:35 88

原创 Linux编程基础——修改文件的大小、删除和重命名、链接文件

修改文件的大小int truncate(const char *path, off_t length);功能:根据文件路径修改文件的大小length:想要修改的的字节数int ftruncate(int fd, off_t length);功能:根据文件描述符修改文件的大小length:想要修改的的字节数删除和重命名int remove(const char *pathname);功能:标准库中删除文件函数,底层调用的是unlinkint unlink(const char *pa

2020-09-04 21:02:13 247

原创 Linux编程基础——文件同步、文件权限、文件属性

文件同步在写入数据时内存与磁盘之间也有一个缓冲区,这种机制降低了磁盘读写次数,提高了读写的效率。但这种机制带来的后果就是磁盘中的数据与实写入的数据不匹配,系统提供了一个函数可以让缓冲区中的数据立即写入到磁盘。void sync(void);功能:把缓冲区中的数据同步到磁盘注意:并不等到数据同步完成后才返回,而是把缓冲区的数据加入到写入队列。int fsync(int fd);功能:把指定文件的内容从缓冲区同步到磁盘注意:会等到完全定稿磁盘才返回int fdatasync(int fd);

2020-09-04 21:00:42 154

原创 Linux编程基础——文件I/O

一切皆文件UNIX/Linux为操作系统把服务和设备都抽象成了文件,并提供了一套简单而统一的接口,这部分接口就是文件读写。也就是说UNIX/Linux系统中的任何对象都可以被当作某种特殊的文件,以文件的形式访问。文件分类目录文件、设备文件、Socket文件、管道文件、普通文件、链接文件文件相关的系统调用#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>int open(const c

2020-09-04 20:41:28 156

原创 Linux环境编程——进程映象

程序与进程程序就是存储在磁盘上的可执行文件,程序被加载到内存中开始运行叫进程。一个程序可以被多次加载生成多个进程,进程就是处于活动状态的计算机程序。进程的内存空间分布就是进程映象,从低地址到高地址依次是:text 代码段 二进制指令,常量data 数据段 初始化过的全局变量和静态变量bss 静态数据段 未初始化过的全局变量和静态变量heap 堆 体量比较大的数据,结构变量stack 栈 局部,块变量environ 环境变量表 环境变量argv

2020-09-04 19:46:05 187

原创 Linux基础(三)——vim文本编辑器

vim文本编辑器可在终端下使用采用纯键盘操作的一款文本编辑器,号称编辑器神,可以升级(二次开发),可以扩展(安装插件)。基本用法: 进入vim:vim file.c 文件存在则打开,不存在则创健。 输入i:进入编辑模式,编写代码。 保存退出:按Esc退出编辑模式,输入ZZ保存退出。vim三大模式: 正常模式:一般用于阅读文件,或者使用快捷键快速修改文件。 插入模式:一般用于编辑文件,输入内容。 行底模式:一般用于对vim进行配置,或者执行一些高级操作。

2020-07-11 16:01:28 130

原创 Linux基础(二)

Ubuntu系统使用的小技巧:Ctrl+l 清理屏幕clear命令功能一样。tab 自动补全命令或者文件名。up/down 调出命令执行记录。Ctrl+Alt+t 可以快速打开终端。Ctrl+Shift+t 新建终端标签页。Ctrl+Alt+方向 切换工作区。Alt+Tab 切换程序。重定向、管道、通配符:重定向:就把命令的执行结束写入到文件中 cmd > file 如果文件存在则清空,如果文件不存在则新建。 cmd >> file 如果文件存在则追加写

2020-07-11 15:58:39 78

原创 Linux基础(一)

Linux系统介绍BCPL->newB->C->UNIX->Minix->LinuxLinux管理硬盘的能力非常强,所以我们看到的只有一个分区。/ 根目录,所有文件都存储在它下面/bin 存储着系统命令/dev 设备文件(一切皆文件)/home 用户主目录,会自动生成用户同名目录/lib64 存储着64位的库文件 静态库.a 共享库.so/media 多媒体目录,u盘、光驱、挂载的目录/opt 安装的应用的软件/root 超级用户目录/sbin 存储超级用

2020-07-11 15:56:05 133

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除