linux环境下C\C++程序设计
linux环境下C\C++程序设计
dwp1147170607
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux的套接字——进程间通信的另一种方法
1 套接字套接字是一种通信机制,通过使用套接字接口,一台机器上的进程可以和另一台机器上的进程进行网络通信,同一台机器之间的进程也可以互相通信。套接字明确把客户端和服务器区分开,可以实现将多个客户连接到一个服务器。1.1 套接字连接原理首先,服务器端应用程序用系统调用socket创建一个套接字,它是系统分配给服务器进程的类似文件描述符的资源,不能与其他进程共享。服务器进程给套接字起个名字,本...原创 2020-04-08 23:39:07 · 1642 阅读 · 0 评论 -
Linux的POSIX线程
1 线程的概念在一个程序中的多个执行路线叫线程,线程是进程内部的一个控制序列。进程执行fork调用时,将创建出该进程的一份副本。这个新进程有自己的变量和PID,它的时间调度也是独立的,它的执行几乎完全独立于父进程。当在进程中创建新线程时,新线程有自己的栈(局部变量),但它和它的创建者共享全局变量、文件描述符、信号处理函数和当前目录状态。除局部变量外,其它所有变量都在一个进程中的所有线程之间...原创 2020-04-07 19:05:03 · 328 阅读 · 0 评论 -
Linux编程中的信号
1 信号信号是UNIX和Linux系统响应某些条件而产生的一个事件,接收到信号的进程会采取一些行动。信号是由于某些错误条件而生成的,如内存段冲突、浮点处理器错误或非法指定等。信号由shell或终端处理器生成来引起中断,如果进程接收到信号而没有安排捕获它,进程会立刻终止。通常系统将在当前目录下生成核心转储文件core,该文件是进程在内存中的映像,有助于程序调试。信号名称在头文件/usr/inc...原创 2020-04-02 19:24:05 · 306 阅读 · 0 评论 -
Linux环境编程时的进程
1 进程的基本概念UNIX标准把进程定义为一个其中运行着一个或多个线程的地址空间和这些线程所需要的系统资源。进程可以看作是正在运行着的程序,每个运行着的程序实例就构成一个进程。Linux系统会在进程之间共享程序代码和系统函数库,所以任何时刻内存中只有代码的一份副本。程序代码以只读的形式加载到内存中,虽不能对这个区域进行写操作,但可以被多个进程安全共享。系统动态库函数也可以共享,这可以节约大量磁...原创 2020-04-02 00:25:31 · 193 阅读 · 0 评论 -
Linux编程获取系统资源限制
1 Linux的具体实现的限制Linux上运行的程序会受到资源限制的影响,它们可能是硬件方面的物理性限制(如内存大小),系统策略的限制(如允许使用的CPU时间)或具体实现的限制(如整数长度或文件名中所允许的最大字符数)。头文件/usr/include/limits.h中定义了许多操作系统具体实现的限制的显示常量,/* Copyright (C) 1991-2018 Free Softwar...原创 2020-04-01 17:12:15 · 396 阅读 · 0 评论 -
Linux编程时日志文件的记录
1 日志文件的记录许多应用程序需要记录它们的活动,系统程序需要向控制台或日志文件写消息,这些消息可能记录网络、调试或内核的有关信息。比如su程序会把某个用户尝试获取root权限但失败的消息记录下来。UNIX规范通过syslog函数为所有应用程序产生日志消息提供了统一的接口。#include <syslog.h>void syslog(int priority,const ch...原创 2020-03-31 16:20:59 · 382 阅读 · 0 评论 -
Linux编程环境下获取用户和主机信息
1 用户信息的获取除了init程序外,所有的Linux程序都是由其它程序或用户启动的。每个用户有一个唯一的与其关联的用户标识符UID,Linux运行的每个程序都是以某个用户的名义在运行,因而每个程序都记录了启动它的UID,当一个程序的SUID位被置位时,它的运行就好像是由该可执行文件的属主启动的,su命令被执行时,程序由超级用户所启动。ps -l命令可以看到#include <sys...原创 2020-03-31 15:40:57 · 700 阅读 · 0 评论 -
Linux操作系统调用unistd.h头文件
1 POSIX规范介绍POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),POSIX标准定义了操作系统应该为应用程序提供的接口标准,即应用程序直接访问内核的函数标准。 POSIX标准意在期望获得源代码级别的软件可移植性。换句话说,为一个POSIX兼容的操作系统编写的程序,应该可以在任何其它的POSIX...原创 2020-03-31 11:47:52 · 4605 阅读 · 0 评论 -
Linux环境编程时创建临时文件
1 临时文件在一些情况下,程序会利用一些文件形式的临时存储手段,但我们必须保证应用程序为临时文件选取的文件名是唯一的。#include <stdio.h>char* tmpnam(char* s);FILE* tmpfile();tmpnam函数返回一个不与已存在的文件同名的有效文件名,若字符串s不为空,则文件名写入它,对tmp的后续调用会覆盖存放返回值的静态存储区。该字符...原创 2020-03-31 11:25:41 · 507 阅读 · 0 评论 -
Linux环境编程的时间获取
1 获取时间和日期运行着的程序获得时间或日期是很有意义的,所有的类UNIX系统都使用同一个时间和日期的起点,即格林尼治时间(GMT)1970年1月1日,这被称为UNIX纪元的起点,时间从那时经过的秒数来衡量。MS—DOS纪元始于1980年。在Linux中处理时间的函数及时间类型在头文件<time_t>中定义。#include <time.h>time_t ti...原创 2020-03-30 17:24:59 · 226 阅读 · 0 评论 -
Linux环境中的用户库及boost安装
1 用户库/usr/lib目录下是Linux环境下用户编程所用到的库文件/usr/include目录下是Linux环境下用户编程所用到的头文件2 安装boostsudo apt install libboost-all-dev...原创 2020-03-30 14:45:31 · 238 阅读 · 0 评论 -
Linux编程时的环境变量
1 环境变量的获取和设置环境变量是一些能用来控制shell脚本和其它程序行为的变量,可用它们配置当前用户的运行环境,可以用set命令来列出所有的环境变量,还可用echo $HOME来列出具体变量名对应的值。#include <stdlib.h>char* getenv(const char* name);int putenv(const char* string);环境变...原创 2020-03-30 12:37:53 · 178 阅读 · 0 评论 -
Linux中mmap函数的使用
mmapLinux利用mmap函数允许程序创建共享内存,建立一段可以被多个程序读写的内存,一个程序的修改可以被其他程序看见。还可以用在文件的处理上,通过带特殊权限集的虚拟内存段实现,对虚拟内存段的读写会使操作系统读写磁盘文件中的对应部分。#include <sys/mman.h>void* mmap(void* addr,size_t len,int prot,int flags...原创 2020-03-30 09:56:19 · 693 阅读 · 0 评论 -
Linux的目录编程系统调用
1 目录的维护#include <sys/stat.h>int chmod(const char* path,mode_t mode);chmod用来改变文件或目录的访问权限,参数mode与open的相同。除非程序被赋予适当的特权,否则只有文件的属主或超级用户可以修改它的权限。#include <sys/types.h>#include <unistd.h...原创 2020-03-29 18:46:03 · 295 阅读 · 0 评论 -
Linux标准IO库
1 标准IO库标准IO库及头文件stdio.h利用底层系统调用实现了通用的接口,这个库现在已成为ANSI标准C的一部分,它实现了格式化输入输出,还负责设备的缓冲需求。在进程启动时有3个流自动打开,分别是stdin、stdout和stderr,在stdio.h头文件中定义。#include <stdio.h>FILE* fopen(const char* filename,cons...原创 2020-03-29 17:39:21 · 290 阅读 · 0 评论 -
Linux系统调用文件操作
1 Linux的文件结构对linux来说,一切设备都是文件,这是通过底层的设备驱动程序进行抽象的。文件除了自己所包含的内容外,还有一个名字和一些属性,如创建修改日期和它的访问权限等,这些属性被保存在文件的inode节点中,它是文件系统中一个特殊的数据块,还包含文件的长度和在磁盘上的存放位置等。OS使用的是文件的inode编号,目录结构为文件命名只是为了便于人们使用。用stat命令可以查看文件...原创 2020-03-29 16:37:09 · 1579 阅读 · 0 评论 -
Linux错误处理
1.1 错误处理Linux许多系统调用会因为某种原因而失败,它们会在失败时设置外部变量errno的值来指明失败的原因,程序必须在函数报告出错时立刻检查errno变量,它可能被下一个函数调用所覆盖。许多函数库都把这个变量用作报告错误的标准方法。错误代码的宏定义在头文件errno-base.h中/* SPDX-License-Identifier: GPL-2.0 WITH Linux-sysc...原创 2020-03-29 09:41:15 · 512 阅读 · 0 评论
分享