LinuxC基础编程
小黄花一朵
这个作者很懒,什么都没留下…
展开
-
数据库查询操作(sqlite_exec)
#include <stdio.h>#include <pthread.h>// 线程的工作函数void *worker(void *v){ sleep(3); printf ("线程退出!\n");}// 线程结束处理:// 1、调用 pthread_join 回收线程资源// 2、使用线程分离,将线程的资源回收工作交给系统// 线程运行结束后由...原创 2019-01-05 09:12:57 · 421 阅读 · 0 评论 -
数据库的添加
#include &lt;stdio.h&gt;#include &lt;sqlite3.h&gt;int main(){ sqlite3 *db; //声明sqlite关键结构指针 int ret = sqlite3_open("student.db", &amp;db); if( ret != SQLITE_OK ) { printf (原创 2019-01-04 13:57:08 · 186 阅读 · 0 评论 -
快速排序
1、程序文件#include &lt;stdio.h&gt;// 快速排序(Quicksort)是对冒泡排序的一种改进// 通过一趟排序将要排序的数据分割成独立的两部分,// 其中一部分的所有数据都比另外一部分的所有数据都要小,// 然后再按此方法对这两部分数据分别进行快速排序,// 整个排序过程可以递归进行,以此达到整个数据变成有序序列。void mySwap(int *a, i...原创 2018-12-30 17:05:35 · 112 阅读 · 0 评论 -
堆排序
1、程序文件/* 堆排序(英语:Heapsort)是指利用堆这种数据结构所设计的一种排序算法。 堆是一个近似完全二叉树的结构,并同时满足堆积的性质: 即子结点的键值或索引总是小于(或者大于)它的父节点。 在堆的数据结构中,堆中的最大值总是位于根节点(在优先队列中使用堆的话堆中的最小值位于根节点)。堆中定义以下几种操作: 最大堆调整(Max Heapify):将堆的末端子节点作调整,...原创 2018-12-26 10:17:26 · 111 阅读 · 0 评论 -
归并排序
1、程序文件/* 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用 分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并, 得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。 归并操作的工作原理如下: 第一步:申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列 第二步:设定两个指...原创 2018-12-25 10:09:44 · 92 阅读 · 0 评论 -
二分插入排序
1、程序文件#include &lt;stdio.h&gt;// 交换void mySwap(int *a, int i, int j){ int tmp = a[i]; a[i] = a[j]; a[j] = tmp;}// 打印void myPrint(int *a, int len){ int i; for (i = 0; i &lt; len; i++)...原创 2018-12-24 15:36:07 · 150 阅读 · 0 评论 -
希尔排序
1、程序文件#include &lt;stdio.h&gt;void mySwap(int *a, int i, int j){ int tmp = a[i]; a[i] = a[j]; a[j] = tmp;}void myPrint(int *a, int len){ int i; for (i = 0; i &lt; len; i++) { printf ("%...原创 2018-12-24 13:46:29 · 82 阅读 · 0 评论 -
插入排序
1、程序文件#include &amp;lt;stdio.h&amp;gt;// 交换void mySwap(int *a, int i, int j){ int tmp = a[i]; a[i] = a[j]; a[j] = tmp;}// 打印void myPrint(int *a, int len){ int i; for (i = 0; i &amp;lt; len; i++) {...原创 2018-12-24 13:46:20 · 129 阅读 · 0 评论 -
read()函数
1、程序文件#include &lt;stdio.h&gt;#include &lt;sys/types.h&gt;#include &lt;sys/stat.h&gt;#include &lt;fcntl.h&gt;#include &lt;unistd.h&gt;#define SIZE 1024int mai原创 2018-12-22 11:44:44 · 5980 阅读 · 0 评论 -
数据库查询操作(sqlite_get_table)
#include <stdio.h>#include <sqlite3.h>// 直接查询而不需要回调// 数据库查询操作,无回调int main(){ sqlite3 *db; //声明sqlite关键结构指针 // 1、新建数据文件 int ret = sqlite3_open("student.db", &db); if( ret...原创 2019-01-06 13:40:09 · 726 阅读 · 0 评论 -
多线程卖票
#include <stdio.h>#include <pthread.h>#include <semaphore.h>// 设置全局变量// 信号量sem_t sem;// 票long ticket = 100;// 卖票void *(sellticket) (void *v){ // 窗口号 long num = (long)v;...原创 2019-01-09 10:07:59 · 192 阅读 · 1 评论 -
守护进程
#include <stdio.h>#include <sys/types.h>#include <unistd.h>#include <stdlib.h>#include <sys/stat.h>#include <fcntl.h>// 如果成功,返回1,失败返回0int daemonize(){ /原创 2019-01-17 09:14:22 · 184 阅读 · 0 评论 -
dup()函数
#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <string.h>int main(){ int fd = open("test&原创 2019-01-16 10:14:30 · 776 阅读 · 0 评论 -
处理子进程退出
#include <stdio.h>#include <signal.h>#include <unistd.h>#include <sys/types.h>#include <sys/wait.h>void handle_signal(int sigNum){ pid_t pid; // 当用fork启动一个新的子进程...原创 2019-01-15 12:45:06 · 426 阅读 · 0 评论 -
线程结束
#include <stdio.h>#include <pthread.h>// 线程的工作函数void *worker(void *v){ // pthread_self是一种函数,功能是获得线程自身的ID。 printf ("线程ID为:%ld\n", pthread_self()); sleep(3); long num = 10; //...原创 2019-01-14 09:19:28 · 115 阅读 · 0 评论 -
线程结束处理
#include &lt;stdio.h&gt;#include &lt;pthread.h&gt;// 线程的工作函数void *worker(void *v){ sleep(3); printf ("线程退出!\n");}// 线程结束处理:// 1、调用 pthread_join 回收线程资源// 2、使用线程分离,将线程的资源回收工作交给系统// 线原创 2019-01-14 14:04:15 · 152 阅读 · 0 评论 -
条件变量
#include <stdio.h>#include <pthread.h>#include <semaphore.h>#include <string.h>// 初始化互斥量pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;// 条件变量pthread_cond_t cond1;...原创 2019-01-13 09:07:25 · 242 阅读 · 0 评论 -
互斥锁
#include <stdio.h>#include <pthread.h>pthread_mutex_t mutex; // 互斥锁int ticket = 100; // 票void *sellticket(void *v){ long num = (long)v; // 窗口号 srand((unsigned int)tim...原创 2019-01-12 09:08:22 · 221 阅读 · 0 评论 -
生产者与消费者2.0——互斥量
#include <stdio.h>#include <pthread.h>#include <semaphore.h>#include <string.h>// 定义结构体变量struct _data{ char *buf[10]; sem_t full; sem_t empty; int count;}data;//...原创 2019-01-11 10:55:01 · 112 阅读 · 0 评论 -
生产者与消费者1.0——多线程
#include &lt;stdio.h&gt;#include &lt;pthread.h&gt;#include &lt;semaphore.h&gt;#include &lt;string.h&gt;// 定义结构体变量// 全局数据struct _data{ // 缓冲区中的数据 char buf[20]; // 控制消费者进入原创 2019-01-10 11:06:35 · 85 阅读 · 0 评论 -
write()函数
1、程序文件#include &lt;stdio.h&gt;#include &lt;sys/types.h&gt;#include &lt;sys/stat.h&gt;#include &lt;fcntl.h&gt;#include &lt;unistd.h&gt;#include &lt;string.h&原创 2018-12-22 10:12:47 · 1683 阅读 · 0 评论 -
电子通讯录(自存储)
1、功能要求制作一个电子通讯录,通过该通讯录能存入好友 ID 号、姓名(英文)、手机号码、家庭住址、公司电话。I、 主界面:主要显示软件功能A) 添加好友信息。B) 列表好友信息。(包含排序功能)C) 搜索好友D) 删除好友II、添加好友:用户输入 “1” 命令后,让用户输入好友信息。添加成功或失败都需要提示用户III、 列表好友:用户输入 “2” 命令后,好友信息升序排列...原创 2018-12-21 14:20:19 · 732 阅读 · 0 评论 -
编程实现查找两个字符串的最大公共子串2.0
1、题目:编程实现查找两个字符串的最大公共子串示例:“aocdfe"和"pmcdfa"最大公共子串为"cdf”注:最大公共子串有不止一个时,只输出第一个最大子串利用斐波那契数列数的思想**2、**程序#include <stdio.h>#include <string.h>int main(){ char *str1 = "aodacdfe";原创 2018-11-27 16:03:32 · 364 阅读 · 0 评论 -
模拟10位QQ账号的生成
1、要求:I、首位不为0II、10位数组来存放III、数组转整型并输出到控制台2、程序/* 在调用rand()函数产生随机数前,必须先利用srand()设好随机数种子, srand(time(NULL))则使用系统定时/计数器的值作为随机种子。 系统在调用rand()之前都会自动调用srand(), 如果用户在rand()之前曾调用过srand()指定了一个值, 那么 ra...原创 2018-11-25 19:45:10 · 4927 阅读 · 1 评论 -
从键盘输入多个数据,并输出其中第二大的数据
1、第二大数小于最大数2、程序#include &amp;amp;lt;stdio.h&amp;amp;gt;int getmax2(int *,int); int main(){ int a[99] = {0}; int count = 0; printf (&amp;quot;Please input numbers:&amp;quot;); do{ scanf (&a原创 2018-11-25 14:32:17 · 962 阅读 · 0 评论 -
加密、解密
1、程序#include &amp;amp;amp;amp;amp;amp;amp;amp;lt;stdio.h&amp;amp;amp;amp;amp;amp;amp;amp;gt;int Int_To_Array(int , int *, int);//整型–数组int Array_To_Int(int *, int);//数组–整型int JiaMi(int, int *);//加密void JieMi(int, int *);//解密int m原创 2018-11-24 20:41:33 · 395 阅读 · 2 评论 -
给一串数,打印出里面和为100的两个数
**1、**程序#include <stdio.h>#include <string.h>int main(){ int arr[99] = {0}; int count = 0; printf("请输入需要进行查找的数列:"); do{ scanf ("%d",&arr[count]); count++; }while( get..原创 2018-11-28 15:01:23 · 204 阅读 · 0 评论 -
通讯录
**1、**功能要求:增加联系人 —— 其中ID使用随机数生成,并且作为唯一的标识,例如生成5位数作为ID,每一次生成,都去数组中查看,该ID有没有被使用,确保唯一性。显示联系人 —— 界面优美的打印出所有联系人(按电话号码从小到大的顺序显示)删除联系人 —— 按电话、姓名删除修改联系人 —— 可以修改姓名、电话**2、**程序#include &amp;amp;lt;stdio.h&amp;amp;gt;#...原创 2018-11-29 17:23:35 · 172 阅读 · 0 评论 -
open()函数
1、程序文件#include &amp;amp;lt;stdio.h&amp;amp;gt;#include &amp;amp;lt;sys/types.h&amp;amp;gt;#include &amp;amp;lt;sys/stat.h&amp;amp;gt;#include &amp;amp;lt;fcntl.h&amp;amp;gt;#incl原创 2018-12-20 11:27:29 · 7002 阅读 · 0 评论 -
选择排序
1、程序文件#include <stdio.h>// 两两交换void mySwap(int *a, int i, int j){ int tmp = a[i]; a[i] = a[j]; a[j] = tmp;}// 选择排序void mySort(int *a, int len){ int i; int j; // 遍历 for (i = 0;...原创 2018-12-20 09:14:33 · 151 阅读 · 0 评论 -
冒泡排序改进(鸡尾酒排序法)
1、程序文件#include &lt;stdio.h&gt;// 两两交换void mySwap(int *a, int i, int j){ int tmp = a[i]; a[i] = a[j]; a[j] = tmp;}// 鸡尾酒排序void mySort(int *a, int len){ int left = 0; int right = len-1; ...原创 2018-12-19 13:23:43 · 141 阅读 · 0 评论 -
冒泡排序
1、程序文件#include &lt;stdio.h&gt;// 两两交换void mySwap(int *a, int i, int j){ int tmp = a[i]; a[i] = a[j]; a[j] = tmp;}// 冒泡排序void mySort(int *a, int len){ int i; int j; // 第一次循环遍历整个数组,找出最...原创 2018-12-19 13:23:26 · 135 阅读 · 0 评论 -
字符加密
1、功能要求将一个不定长的字符串转换为一个定长的数字输入:字符串输出:16位数字转换格式:将字符串分成n组,每组16个字符将n组字符串相应位置的字符相加,如果值不是个数,则各个位再进行相加直到为个位数为止,最终得出的16个数字即要求输出的数字2、程序文件#include &lt;stdio.h&gt;#include &lt;string.h&gt;int main(){ ...原创 2018-12-16 10:22:16 · 201 阅读 · 0 评论 -
一般Makefile文件的编写
1、在eg目录下分别新建main.c、add.c、sub.c、mul.c、hello.c、“Makefile”文件//main.c#include &amp;amp;amp;amp;lt;stdio.h&amp;amp;amp;amp;gt;int main(){ int a; int b; printf (&amp;amp;amp;quot;a + b = %d\n&amp;amp;amp;quo原创 2018-12-04 14:10:48 · 165 阅读 · 0 评论 -
简单Makefile文件的编写
**1、**简单Makefile文件I、在hello目录下新建“hello.c”文件//hello.c文件#include &amp;amp;amp;lt;stdio.h&amp;amp;amp;gt;int main(){ printf (&amp;amp;quot;Hello World!\n&amp;amp;quot;); return 0;} II、在hello目录下新建“Makef原创 2018-12-04 13:34:08 · 722 阅读 · 0 评论 -
任意输入一串数,去除其中重复的数并按从小到大的顺序输出
**1、**程序#include <stdio.h>void Input_Num(int *, int *);//从键盘获取一串数字void Sort(int *, int *);//对输入的数按从小到大进行排序void Distinct(int *, int *);//去重int main(){ int a1[99]; int count1 = 0; In...原创 2018-12-02 11:57:52 · 3543 阅读 · 1 评论 -
malloc
1、malloc : 在堆上分配空间void *mall (size_t size);参数:要分配的空间大小,单位是字节返回值: 如果分...原创 2018-12-01 12:07:49 · 926 阅读 · 0 评论 -
电子密码锁设计
01设计要求(1)密码为6位长度,初始值是111111。有三次登陆机会,每错一次,红灯及蜂鸣器各亮、响一秒,液晶显示错误信息。错三次后,禁止再登陆。正确登陆后绿灯亮。(2)可修改密码,但须先正确输入原密码。设置新密码需连续正确输入两次,同时密码须有相应格式,如密码需8位数字。(其余格式,如不能连续8位相同数字、符号*#可作为密码等可根据情况自行设置)。(3)输入密码时可用*显示已输入密码,...原创 2019-08-17 17:01:25 · 6294 阅读 · 2 评论