c语言
文章平均质量分 69
c语言基础学习整理
unbeliverpool
if you want, you can
展开
-
c语言常见面试整理1
关键字static的作用是什么?在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。引用与指针的区别首先,引用不可以为空。前面也说过了引用是对象的别名,引用为空——对象都不存在,怎么可能有别名!故定义一个引用的时候,必须初始化其次,引原创 2020-12-04 14:35:16 · 183 阅读 · 0 评论 -
c语言——http编程
HTTP协议简介超文本传输协议是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(一般基于TCP)。客户端发起一个HTTP请求到服务器上指定端口(默认端口为80),这个客户端被称为用户代理程序(user agent)。应答服务器被称为源服务器(origin server)。在用户代理和源服务器中间可能存在多个“中间层”,比如代理服务器、网关或者隧道(tunnel)HTTP可以在任何互联网协议上,或其他网络上实现。HTTP假定其下层原创 2020-08-06 15:36:55 · 8465 阅读 · 0 评论 -
c语言——socket编程
socket编程socket函数/*创建一个socket*/int socket(int family,int type,int protocol)family: 指定使用的协议簇:AF_INET(IPv4) AF_INET6(IPv6) AF_LOCAL(UNIX协议) AF_ROUTE(路由套接字) AF_KEY(秘钥套接字)type:指定使用的套接字的类型:SOCK_STREAM(字节流套接字) SOCK_DGRAMprotocol:如果套接字类型不是原始套接字,那么这个参数就为0bi原创 2020-08-04 17:01:42 · 273 阅读 · 0 评论 -
c语言——进程间通信
进程间通信信号管道消息队列共享内存socket实现信号参考文章: Linux信号(signal) 机制分析信号实现demo#include <stdio.h>#include <stdlib.h>#include <signal.h>void handler(int arg){ printf("hello world\n"); //kill(getpid(),9); //9表示 SIGKILL 杀死信号}/* SIG原创 2020-08-04 13:30:52 · 2656 阅读 · 0 评论 -
c语言——线程及线程间同步互斥
线程操作线程(thread)就是运行在进程上下文中的逻辑流。每个线程都有它自己的线程上下文(thread contxt),包括唯一的整数线程ID(Thread ID,TID)、栈、栈指针、程序计数器、通用目的的寄存器和条件码。所有的运行在一个进程里的线程共享该进程的整个虚拟地址空间。创建线程pthread_createtypedef void *(func)(void *); //return NULL;int pthread_create(pthread_t *tid, pthread_a原创 2020-08-04 08:46:54 · 1505 阅读 · 0 评论 -
c语言——目录操作
access、truncate、link 、dir操作accessint access(const char *filenpath, int mode);作用: 判断是否对文件有操作权限 在头文件unistd.h中的预定义如下:#define R_OK 4 只判断是否有读权限#define W_OK 2 只判断是否有写权限#define X_OK 1 判断是否有执行权限...原创 2018-06-12 17:44:06 · 516 阅读 · 0 评论 -
创建内存流:fmemopen()函数详解
创建内存流的3个函数如下:#include <stdio.h>FILE* fmemopen(void*buf, size_t size, const char* mode);FILE* open_memstream(char**ptr, size_t* sizeloc);#include &l...转载 2018-06-21 14:07:13 · 2530 阅读 · 0 评论 -
c语言——带缓冲的文件 I/O操作
open操作FILE *fopen(const char *path, const char *mode); //作用:打开一个文件流,打开失败则返回NULLFILE *freopen(const char *path, const char *mode, FILE *stream); //将一个流进行重定向FILE *fdopen(int fd,const char *mode); /...原创 2018-06-20 09:32:40 · 361 阅读 · 0 评论 -
c语言——进程环境初解
进程 狭义定义:进程是正在运行的程序的实例 广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。进程的概念主要有两点: 第一,进程是一个实体。每个进程都有它自己的地址空间,一般包括文本区(text region)、数据区(data region)和堆栈(stack reg...原创 2018-07-10 17:08:42 · 243 阅读 · 0 评论 -
c语言——进程控制
进程ID pid_t getpid(); //进程ID pid_t getppid(); //父进程ID pid_t getuid(); //实际用户ID pid_t geteuid(); //有效用户ID pid_t getgid(); //实际组ID pid_t getegid(); //有效组ID...原创 2018-07-11 16:12:48 · 440 阅读 · 0 评论 -
unix c编程:不带缓冲的文件 I/O(文件描述符)
lienhua342014-08-27内核使用三种数据结构表示打开的文件,分别是文件描述符表、文件表和 V 节点表。(1) 每个进程在进程表中都有一个记录项,记录项中包含有一张打开文件描述符表,每个描述符占用一项。与每个文件描述符相关联的是: (a) 文件描述符标志。 (b) 指向一个文件表项的指针。(2) 内核为所有打开文件维持一张文件表。每个文件表项包含:转载 2017-12-18 15:37:00 · 331 阅读 · 0 评论 -
c语言——出错处理errno
#include void perror(const char *msg);1. errno变量 文件 中定义了符号 errno 以及可以赋予它的各种常量,这些常量都是以字符 E 开头。例如,若 errno 等于常量 EACCES,表示产生了权限问题(例如,没有打开所要求文件的足够权限)。errno特点:1、当出错的时候,errno会自动被赋值。一个int数据2、原创 2017-12-13 18:04:57 · 1593 阅读 · 0 评论 -
c语言——编程规范及注意事项
C语言01编写c语言的目的:根本————代码正确、可执行提升————代码可读性高(易读、易懂、注释明确、符合规范)、高效完美————健壮、可移植第一步的根本自然不必多说;代码写完之后,在测试的时候难免要修改,而且大项目的开发一般需要多人协作,因此除了个人要保证自己代码可以被他人看懂之外,还要保证自己代码规范可以与他人完美组合,没有冲突,这就需要有统一的规范——一般把一些默认的规原创 2015-08-04 16:12:57 · 899 阅读 · 0 评论 -
c语言——编译与链接
C语言02——编译、链接分析hello,world的分析——编译、链接的过程(cc编译指令)全部的操作在linux指令行下都可以实现~~~文件:hello.c#include#ifndef NUM //宏定义,就是NUM代表1#define NUM 1 #endif#ifdef NUM原创 2015-08-04 16:27:42 · 535 阅读 · 0 评论 -
c语言——不带缓冲的文件 I/O操作
[cpp] view plain copyprint?1 文件描述符文件描述符是一个非负整数。当打开一个现有文件或创建一个新文件时,内核向进程返回一个文件描述符。将其作为参数传送给 read 或 write等操作。UNIX 系统 shell 使用文件描述符 0 与进程的标准输入相关联,文件描述符 1 与进程的标准输出相关联,文件描述符 2 与进程的标准出原创 2017-12-19 17:49:59 · 736 阅读 · 0 评论