![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c
IAmLinGe
这个作者很懒,什么都没留下…
展开
-
C++ 设置线程名字
c++/c程序设置线程名字原创 2020-12-30 18:21:26 · 3330 阅读 · 0 评论 -
cannot convert ‘_IO_FILE*’ to ‘const char*
cannot convert ‘_IO_FILE*’ to ‘const char*原创 2020-12-21 10:41:18 · 1730 阅读 · 0 评论 -
C语言判断系统是32位还是64位
long 在 32 位系统中是 4 字节,与 int 表示范围相同,在 64 位系统中是 8 字节。#include <stdio.h>#include <stdlib.h>#include <limits.h>int main() { long a = INT_MAX; if (a + 1 < 0) { printf("32: %ld\n", a); } else { printf("64: %ld原创 2020-07-12 01:42:41 · 1134 阅读 · 0 评论 -
判断系统是大端还是小段
大端:高位内存存储低序字节小端:高位内存存储高序字节short a = 0x0102,其中 01 高序字节, 02 低序字节#include<stdio.h>int main() { union { short s; char c[sizeof(short)]; } un; un.s = 0x0102; if (sizeof(short) == 2) { if (un.c[0] == 1 &&a.翻译 2020-07-12 01:31:40 · 270 阅读 · 0 评论 -
leetcode两数之和
两数之和给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]/** * Note: The returned array must b...原创 2018-09-15 02:44:09 · 193 阅读 · 0 评论 -
操作系统上机作业-- 使用信号量解决生产者、计算者、消费者问题(多线程)
pc2.c: 使用信号量解决生产者、计算者、消费者问题• 功能和前面的实验相同,使用信号量解决实现思路: 生产者、计算者、消费者三者之间的关系和上一个编程任务一样,不一样的是,将互斥量、条件变量封装起来作为信号量,处理方式基本和上一个编程任务一样 实现代码:#include<stdio.h>#include<pthread.h>#includ...原创 2018-07-15 23:25:17 · 4697 阅读 · 12 评论 -
操作系统上机作业--使用条件变量解决生产者、计算者、消费者问题(多线程)
pc1.c: 使用条件变量解决生产者、计算者、消费者问题/*• 系统中有3个线程:生产者、计算者、消费者• 系统中有2个容量为4的缓冲区:buffer1、buffer2• 生产者生产'a'、'b'、'c'、‘d'、'e'、'f'、'g'、'h'八个字符,放入到buffer1• 计算者从buffer1取出字符,将小写字符转换为大写字符,放入到buffer2• 消...原创 2018-07-15 23:21:38 · 2475 阅读 · 0 评论 -
操作系统上机作业--多线程排序
sort.c: 多线程排序• 主线程创建一个辅助线程• 主线程使用选择排序算法对数组的前半部分排序• 辅助线程使用选择排序算法对数组的后半部分排序• 主线程等待辅助线程运行結束后,使用归并排序算法归并数组的前半部分和后半部分实现思路: ARRAY_COUNT存放要进行排序的数字的个数,need_sort_array[ARRAY_COUNT];记录待排序的数字,s...原创 2018-07-15 23:12:42 · 2492 阅读 · 0 评论 -
操作系统上机作业--根据莱布尼兹级数计算PI(2)(多线程)
pi2.c: 使用N个线程根据莱布尼兹级数计算PI• 与上一题类似,但本题更加通用化,能适应N个核心,需要使用线程参数来实现• 主线程创建N个辅助线程• 每个辅助线程计算一部分任务,并将结果返回• 主线程等待N个辅助线程运行结束,将所有辅助线程的结果累加实现思路: N为创建线程的个数,在main()函数控制创建的线程的个数,并在创建线程时,根据创建的顺序向voi...原创 2018-07-15 22:54:02 · 2261 阅读 · 2 评论 -
操作系统上机作业--根据莱布尼兹级数计算PI(1)(多线程)
pi1.c: 使用2个线程根据莱布尼兹级数计算PI• 莱布尼兹级数公式: 1 - 1/3 + 1/5 - 1/7 + 1/9 - ... = PI/4• 主线程创建1个辅助线程• 主线程计算级数的前半部分• 辅助线程计算级数的后半部分• 主线程等待辅助线程运行結束后,将前半部分和后半部分相加实现思路: 用全局变量存储主线程和副线程中的计算结果,然后将结果相...原创 2018-07-15 22:48:58 · 4252 阅读 · 2 评论 -
操作系统上机作业--实现shell(2)(多进程)
sh2.c: 实现shell程序,要求在第1版的基础上,添加如下功能• 实现文件重定向• $ echo hello >log• $ cat log• Hello实现思路: 和sh1.c相比,主要是修改了cmd函数的实现过程。通过循环找出重定向符号">"的位置,记录下来,并记录下重定向符号后面的文件名,open该文件,然后创建一个子进程,在子进程中,使...原创 2018-07-15 22:42:41 · 2684 阅读 · 3 评论 -
栈的应用--括号匹配的检验
算法中设置一个栈,每次读入一个括号,若是右括号,则或者与置于栈顶的括号匹配,或者是不合法的情况,若是左括号,则入栈。若算法结束,栈是空的,则括号合法。 括号匹配函数Status bracket_match(){ SElemType brackets[100]; int i; SElemType e; SqStack S; Init_Stack(S...原创 2018-07-12 01:09:58 · 903 阅读 · 0 评论 -
栈的应用--数制转换
十进制N和其他d进制 N=(N div d)Xd+N mod d (其中:div为整除运算,mod为求余运算)void conversion(){ SqStack S; int N; SElemType e; Init_Stack(S); scanf("%d",&N); while(N){ Push(S,N%8);...原创 2018-07-12 00:10:13 · 383 阅读 · 0 评论 -
数据结构--顺序栈
栈:限定仅在表尾进行插入或删除操作的线性表,对栈来说,表尾端为栈顶,表头端为栈底。本文实现了顺序栈的表示和相关函数操作,以及一些验证性代码。#include<stdio.h>#include<stdlib.h>#include<windows.h>#define STACK_INIT_SIZE 100#define STACKINCREME...原创 2018-07-11 01:27:00 · 230 阅读 · 0 评论 -
操作系统上机作业--创建N个线程(多线程)
ring.c: 创建N个线程,它们构成一个环• 创建N个线程:T1、T2、T3、… TN• T1向T2发送整数1• T2收到后将整数加1• T2向T3发送整数2• T3收到后将整数加1• T3向T4发送整数3• …• TN收到后将整数加1• TN向T1发送整数N实现思路: 循环创建N个线程,并在创建线程的时候对线程函数传入线程序数,...原创 2018-07-15 23:29:36 · 2880 阅读 · 2 评论 -
栈的应用--汉诺塔
#include<stdio.h>void move(char x,int n,char y){ printf("%d号盘 %c柱 ---> %c柱\n",n,x,y);}void hanoi(int n,char x,char y,char z){ if(n==1){ move(x,1,z); } else{ ...原创 2018-07-15 23:53:35 · 224 阅读 · 0 评论 -
linux c++获取指定目录下所有特定后缀名的文件名
#include <iostream>#include <string>#include <vector>#include <string.h>#include <dirent.h>using namespace std;int getFiles(const string path, vector<string>...原创 2019-06-27 12:19:00 · 4364 阅读 · 1 评论 -
求两个整数数组乘积最小值
输入:三行:第一行:n,表示数组的个数第二行:数组a各个元素的值第三行:数组b各个元素的值输出:式子:a[0]*b[0]+a[1]*b[1]+...a[n-1]*b[n-1];的最小值其中数组a中元素顺序可以调整eg:31 1 310 20 30输出80Solution:#include<stdio.h>#include<stdlib.h>...原创 2019-03-10 18:35:56 · 3518 阅读 · 2 评论 -
C/C++编译、测试须知、须会,CMake、Boost等
一下内容为本人实习期间学习笔记!!参考了网上的许多教程,共享大家,欢迎交流。动态库和静态库(共享库)不同点:代码被载入的时刻不同静态库的代码在编译过程中已经被载入可执行程序,因此体积比较大,程序运行时不再需要静态库动态库的代码编译时不会链接到目标代码中,运行时才被载入,程序运行时还需要动态库存在库的编译:无论是静态库还是动态库,都是.o文件创建的。静态库:1、先通过gcc编译成.o文...转载 2019-01-11 10:50:48 · 674 阅读 · 0 评论 -
C++11的静态断言
断言就是将一个返回值总是需要为真的判别式放在语句中,来排除在设计的逻辑上不应该出现的情况。C++11标准中引入了静态断言:static_assert在C++标准中,<cassert>或assert.h为我们提供了assert宏,但是这个宏只有在运行时才进行断言,这有很多的限制,因为有时候,程序的某些路径我们可能执行不到,所以最好能够在编译的时候就产生断言。C++11标准中就引入了静...原创 2018-11-26 00:22:57 · 327 阅读 · 0 评论 -
通过查看__cplusplus的值查看编译器的C++标准
C++03标准中,__cplusplus被定义为199711L,而在C++11中,__clpusplus则被定义为201103L#include<iostream>using namespace std;int main(){ cout<<__cplusplus<<endl; return 0;}...转载 2018-11-25 21:38:26 · 3000 阅读 · 0 评论 -
c获取文件的名字和运行到程序的第几行功能
可以通过__FILE__和__LINE__两个宏获取文件的名字和代码运行的行数#include<stdio.h>int main(){ printf("file:%s line:%d\n",__FILE__,__LINE__); return 0;}__FILE__在linux中能获取到文件名称,但是在windows中获取的是带路径的名字。...原创 2018-11-25 20:56:32 · 264 阅读 · 0 评论 -
获取函数的名字
c99标准中的__func__预定义标识符功能可以帮我们获取函数的名称#include&lt;string&gt;#include&lt;iostream&gt;using namespace std;const char *hello(){ return __func__;}int main(){ cout&lt;&lt;hello()&lt;&lt;endl转载 2018-11-25 17:10:15 · 748 阅读 · 0 评论 -
求两个字符串的最长公共子串
给出两个字符串,求出两个字符串的最长公共子串心塞塞,一面之后没有进入二面,菜是原罪。#include&amp;lt;iostream&amp;gt;#include&amp;lt;string&amp;gt;using namespace std;int main(){ string a, b; while (cin &amp;gt;&amp;gt; a &amp;gt原创 2018-11-12 23:55:14 · 921 阅读 · 0 评论 -
NewCode----给定两个数R和n,输出R的n次方
参考链接输入描述:多组测试用例,请参考例题的输入处理 输入每行一个浮点数 R 其中0.0 &amp;lt; R &amp;lt;99.999, 一个整数 n 其中0 &amp;lt; n &amp;lt;=25输出描述:输出R的n次方输入例子1:95.123 12 0.1 1输出例子1:548815620517731830194541.8990253434157159735...转载 2018-08-30 23:13:34 · 2181 阅读 · 0 评论 -
操作系统上机作业--实现shell(1)(多进程)
sh1.c: 实现shell程序,要求具备如下功能支持命令参数$ echo arg1 arg2 arg3$ ls /bin /usr/bin /home实现内置命令cd、pwd、exit$ cd /bin$ pwd/bin实现代码:#include&lt;stdio.h&gt;#include&lt;sys/wait.h&gt;#include&...原创 2018-06-27 05:49:01 · 3084 阅读 · 2 评论 -
操作系统上机作业--实现mysys(多进程)
mysys.c: 实现函数mysys,用于执行一个系统命令,要求如下mysys的功能与系统函数system相同,要求用进程管理相关系统调用自己实现一遍使用fork/exec/wait系统调用实现mysys不能通过调用系统函数system实现mysys 测试程序#include &lt;stdio.h&gt;int main(){ printf("---------...原创 2018-06-27 05:44:30 · 3478 阅读 · 2 评论 -
宏定义 #define 和常量 const 的区别
学习笔记!参考链接一、类型和安全检查不同宏定义是字符替换,没有数据类型的区别,同时这种替换没有类型安全检查,可能产生边际效应等错误;const常量是常量的声明,有类型区别,需要在编译阶段进行类型检查二、编译器处理不同宏定义是一个"编译时"概念,在预处理阶段展开,不能对宏定义进行调试,生命周期结束与编译时期;const常量是一个"运行时"概念,在程序运行使用,类似于一个只读行数据三、存储方式不同宏定...转载 2018-06-05 02:05:55 · 377 阅读 · 0 评论 -
基于tcp connect的端口扫描程序
原理:connect()函数用于对于每一个感兴趣的目标计算机的端口进行连接,如果该端口处于侦听状态,那么connect()就会成功,即没有提供服务。如果对于每一个目标端口以串行的方式使用单独的connect()调用,需要较长的时间,我们可以通过使用非阻塞I/O设置一个较低的时间周期或者同时观察多个套接字来提高扫描速度环境:kali linux+gcc 6.xx#include<stdio.h...原创 2018-06-04 22:56:13 · 5568 阅读 · 2 评论 -
数据结构--数组实现线性表
用数组实现线性表数据结构,并编程实现相关操作函数。原创 2018-04-29 16:02:08 · 519 阅读 · 0 评论 -
两数相加&c语言实现
给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807解题思路:我先开始的思路是,再创建一个返回链表,然后...原创 2018-05-20 01:47:46 · 4755 阅读 · 0 评论 -
两数之和&c语言实现
题目描述:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解题思路:我原先想的是先将数组的值保存到一个二维数组中,其中第一列保存值,第二列保存原来数组的下...原创 2018-05-17 15:54:19 · 3094 阅读 · 0 评论 -
统计文件中有多少个单词&c语言实现
假设文件中的单词都是字母的组合,且单词间用空格或者“."区分。#include<stdio.h>#include<stdlib.h>#include<error.h>int main(){ FILE *fp; int i; int fr; long fsize; int word=0; int sum=0; char filename[20...原创 2018-05-17 11:56:29 · 1804 阅读 · 0 评论 -
c语言内存管理
本文为个人学习笔记,仅用于个人学习、复习!在进行c语言编程的时候,如果我们要存贮多个数据,一般的做法是申请一个相应类型的数组,但是这个方法只有在我们预先知道数组的大小的时候才可用,如果我们面临的问题需要我们根据相应的参数去修改申请的空间,那采用数组这种方法就显得有些捉襟见肘了。这事我们就需要学习一下c语言的动态内存管理了。c语言为内存的分配和管理提供了几个函数,如下:1、要熟知几个函数的返回值类型...转载 2018-04-25 16:02:05 · 249 阅读 · 0 评论 -
c语言中的break和continue
break和continue是C语言中的两条语句,这两条语句在循环和选择结构中经常会遇到。break首先最长见与switch语句中。比如我们设计一个程序,通过输入学生的成绩来确定学生成绩等级,等级一共分为四等,分别是优秀、良好、一般、较差,分别对应分段90~100、75~89、60~74、0~59.代码实现如下:{CSDN:CODE:2005199}...原创 2018-04-21 00:05:18 · 490 阅读 · 0 评论 -
c可变参数
本文为个人学习笔记,仅供个人学习、复习使用。参考链接:链接1、链接2在c语言中,我们可以定义这样的函数,函数带有可变数量的参数。int func(int num,...){...}int main(){ func(2,2,3);}1、要注意定义函数时函数的形式;c语言中的printf()函数其实也是一个可变参数函数,它的原型如下:int printf(const char *f...转载 2018-04-25 00:15:53 · 208 阅读 · 0 评论 -
C错误处理
本文为个人学习笔记,仅用于个人学习、复习使用! c语言不提供对错误处理的直接支持,但是作为一种系统编程语言,它以返回值得形式允许您访问底层数据,在发生错误时,大多数的c或Unix函数调用返回1或NULL,同时会设置一个错误代码errno,该错误代码是全局变量,表示在函数调用期间发生了错误。您可以在errno.h头文件中找到各种各样的错误代码。 所以c程序员可以通过检查返回值,然后根据...转载 2018-04-24 17:29:37 · 1167 阅读 · 0 评论 -
linux c实现一个简单的sniffer
参考陈兵老师的《网络安全》一书 环境:kali linux+gcc 6.xx 具体的实现原理是,先将自己的网卡设置为混杂模式,然后从特殊的套接字中读取以太网帧,对读取的以太帧进行筛选、去报头。得到我们想要的数据。#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;#include&lt;unistd.h&gt;#include&lt;stri转载 2018-06-07 01:58:34 · 1490 阅读 · 13 评论 -
操作系统上机题目(多进程1)
1、创建1个子进程2、程通过管道与子进程连接 子进程的标准输出连接到管道的写端主进程的标准输入连接到管道的读端3、进程中调用exec(“echo”, “echo”, “hello world”, NULL)4、进程中调用read(0, buf, sizeof(buf)),从标准输入中获取子进程发送的字符串,并打印出来code:#include&lt;stdio.h&gt;#...原创 2018-06-24 16:41:45 · 905 阅读 · 0 评论 -
操作系统上机作业--使用系统调用实现mycp
mycp.c的功能与系统cp程序相同将源文件复制到目标文件,例子如下:要求使用系统调用open/read/write/close实现$ cat /etc/passwdroot:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologinbin:x:2:2:bin:/bin:/usr/sbin...原创 2018-06-27 05:40:32 · 2089 阅读 · 0 评论