Linux编程学习
文章平均质量分 95
小小哇牛
jiayou
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C语言实现远程MySql的增删改查
mysql_query(MYSQL *connevtion, char *sql) 执行SELECT语句得到查询结果 MYSQL_RES *mysql_store_result(MYSQL *pmysql); 成功返回一个查询结果指针,查询为结果或者错误返回NULL mysql_free_result(MYSQL_RES *result) 调用完mysql_store_res原创 2016-07-28 18:14:31 · 2822 阅读 · 0 评论 -
改进后的客户端服务器聊天功能,此版本比上版本多了加锁处理,多了客户端数量控制,多了线程join操作
改进后的客户端服务器聊天功能 客户端代码 #include #include #include #include #include #include #include #include #include void* recvsocket(void *arg) { int st = *(int *)arg; char s[1024]; while (1) { m原创 2016-07-13 14:18:12 · 758 阅读 · 0 评论 -
网络程序抓包工具
sinffer.cpp文件 // sinffer.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include "pub.h" int main(int argc, char* argv[]) { if (argc < 3) { printf("usage: %s IPAddress port [byte]\n", argv[0]);原创 2016-07-17 18:42:29 · 3157 阅读 · 0 评论 -
Linux利用socket实现两台pc之间的数据传输功能,包括windows到linux,UDP实现
makefile 和TCP一样,参见上一篇博文 客户端和服务端主函数也和上一篇的tcp是一样的,同样参考上一篇博文,这里只是修改了pub.c的文件了 #ifdef WIN #include #else #include #include #include #include #include #include #define SOCKET int #endif #incl原创 2016-07-14 18:01:44 · 2907 阅读 · 0 评论 -
Linux利用socket实现两台pc之间的数据传输功能,包括windows到linux,TCP/IP实现
Linux利用socket实现两台pc之间的数据传输功能,包括windows到linux 连接选项 -lWs2_32 代表要用Ws2_32.lib这个库 gcc编译选项,-D 代表定义一个宏,等同于在c语言当中定义 #defind WIN 在windows下,使用socket之前,必须使用WSAStartup初始化socket,程序运行结束以后必须原创 2016-07-14 15:19:10 · 6159 阅读 · 1 评论 -
UDP实现网络数据传输
客户端代码 #include #include #include #include #include #include #include #include #include int main(int arg, char *args[]) { if (arg < 3) { return -1; } int st = socket(AF_INET, SOCK_D原创 2016-07-14 10:58:55 · 923 阅读 · 0 评论 -
Linux MySql学习记录
建立数据库 CREATE DATABASE db1 CHARACTER set utf8; 查看数据库 show databases; 删除数据库 DROP DATABASE db_name 使用数据库 USE db_name 登陆MySql用户 mysql -u user_name -p 设置用户编码集 set names utf8; 创建表 CREAT原创 2016-07-25 18:07:21 · 620 阅读 · 0 评论 -
Linux下字符集转换方法
Linux是支持UTF-8的编码格式,别的编码格式需要转换一下,否则会出现乱码,Linux基本上支持所有的字符集类型,转化之前先用iconv --list看看Linux是否支持需要转化的格式 /* ============================================================================ Name : iconv.c原创 2016-07-18 17:35:06 · 1330 阅读 · 0 评论 -
Linux控制界面文字显示位置
如果编译不了,或许是因为Linux没有安装curses包/* ============================================================================ Name : iconv.c Author : Version : Copyright : Your copyright notice原创 2016-07-18 18:10:01 · 1102 阅读 · 1 评论 -
Linux的Epoll的通用写法
/* ============================================================================ Name : epoll.c Author : Version : Copyright : Your copyright notice Description : Hello World i原创 2016-07-18 22:45:52 · 684 阅读 · 0 评论 -
Red Hat 6.3安装gcc gc++
转自http://blog.csdn.net/quantyongan/article/details/38494193,亲测可用 首先安装gcc需要相应的rpm依赖包,在安装系统的镜像文件中就有这些rpm包 首先在光驱中选择系统的安装包载入 如果桌面显示有如下的光驱 说明是已经载入了镜像,这时候,需要挂载一下镜像到mnt目录 先在/转载 2016-07-02 18:05:20 · 3812 阅读 · 0 评论 -
写一个钩子,控制远程主机按键
先上到代码,hookdll项目代码如下 dllmain.cpp // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "stdafx.h" HMODULE hHookDll;// 定义一个全局的HMODULE供SetWindowsHookEx函数使用 BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_rea原创 2016-07-17 23:48:42 · 978 阅读 · 0 评论 -
C语言封装所有MySql操作
主程序 #include #include #include #include #include #include #include #include "mydb.h" void sqldb(const char *src)//参数src为要执行的SQL语句 { if ((strncmp(src, "select", 6) == 0) || (strncmp(src, "S原创 2016-08-03 14:10:29 · 2928 阅读 · 0 评论 -
通过TCP协议实现多个client端可以并发连接到server,client可获得server指定目录下的文件列表。
程序有些小问题,不能连着输入,具体问题处在哪里还没有找到,先记下代码,回来在仔细查找错误地方 服务端代码如下: /* ============================================================================ Name : qqepoll.c Author : Version : Copyr原创 2016-07-20 23:38:44 · 3328 阅读 · 0 评论 -
在Linux下用多线程实现两台客户端通过服务器进行聊天,类似qq功能
pub.h文件 /* * pub.h * * Created on: 2016年7月21日 * Author: Administrator */ #ifndef PUB_H_ #define PUB_H_ #include #include #include #include #include #include #include #include #in原创 2016-07-21 16:04:45 · 3676 阅读 · 3 评论 -
window和linux安装qt5.2注意事项
windows下环境变量path需要加入以下路径,以便QT写的程序可以离开QT开发环境独立运行 C:\Qt\Qt5.2.0\5.2.0\\mingw48_32\bin\;C:\Qt\Qt5.2.0\Tools\mingw48_32\bin; linux安装的时候需要确定操作系统位数 linux下需要设置.bash_profile文件 PATH中加入/opt/Qt5.2.0/5.2.0/原创 2016-07-20 14:42:02 · 700 阅读 · 0 评论 -
RedHat6.3安装Oracle详解
这里安装的是64位的系统,32位的注意一下 首先在root用户下执行cd /media然后cd *进入RHEL_6.3 x86_64 Disc 1然后再cd Packages 按顺序执行下面给命令,进行安装 rpm -ivh compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm rpm -ivh elfutils-libelf-devel-0.152-原创 2016-08-04 15:09:37 · 1370 阅读 · 0 评论 -
Linux下Oracle的Proc学习笔记
Proc的make特别复杂,但是基本都一样,一个模板搞定所有 .SUFFIXES: .c .o CC=gcc PROC=proc PROCSRCS=oracle.pc SRCS=$(PROCSRCS:.pc=.c) OBJS=$(SRCS:.c=.o) ORACLE_HOME=/opt/oracle/product/11.2.0 ORAFLAGS1=/usr/include/linux O原创 2016-08-09 09:58:07 · 2618 阅读 · 0 评论 -
ubuntu16.04LTS安装Qt Creator
转自:http://blog.csdn.net/keith_bb/article/details/51533584 开发需要,在 Linux下安装Qt Creator。我电脑装的是Ubuntu16.04LTS,其它的应该相同! 1.Qt下载 关于Qt下载,比较机智的同学都回去官网直接download,但是步骤相当繁琐!大家可以打开下面的链接,里面有各版本Qt,操作简单,童叟无欺!转载 2016-08-26 12:37:05 · 1568 阅读 · 0 评论 -
Ubuntu16.04安装openjdk-7-jdk
Ubuntu16.04的安装源已经默认没有openjdk7了,所以要自己手动添加仓库,如下: sudo add-apt-repository ppa:openjdk-r/ppa sudo apt-get update sudo apt-get install openjdk-7-jdk转载 2016-08-26 14:17:27 · 1259 阅读 · 0 评论 -
自己动手实现一个守护进程,当控制台窗口关闭时还可以在后台运行。每隔一秒钟向my.log文件中插入一条记录
自己动手实现一个守护进程,当控制台窗口关闭时还可以在后台运行。每隔一秒钟向my.log文件中插入一条记录,记录格式如下:yyyy-mm-dd hh:mi:se 记录内容,其中yyyy为年,mm为月,dd为天,hh为小时,mi为分钟, se为秒。 void writelog(const char *log) { time_t tDate; struct tm *eventTime;原创 2016-07-10 18:16:34 · 1659 阅读 · 0 评论 -
虚拟机上Rathat6.3安装MySQL-5.6.16-1.rhel5.x86_64.rpm-bundle教程
首先需要下载的软件有MySQL-5.6.16-1.rhel5.x86_64.rpm-bundle,http://download.csdn.net/detail/hellonigesb/9585117,分五部分,其他链接进入我的资源主页找就能找到,Linux6.3的镜像文件在网上很好找,真是找不到了,留言我给你发,记着Linux需要是64位的,如果是32,那么你需要在网上找一下32位对应的Mysq原创 2016-07-25 13:53:47 · 3072 阅读 · 0 评论 -
qt 下UDP消息的接收和发送和TCP发送文件
#ifndef WIDGET_H #define WIDGET_H #include #include #include #include #include class Widget : public QWidget { Q_OBJECT public: Widget(QWidget *parent = 0); ~Widget(); private:原创 2016-07-26 16:28:07 · 3777 阅读 · 0 评论 -
测试Linux下socket每次发送数据和接受数据的最大值
经试验发现,客户端一次发送数据大小有个上线,本机试验数据最大是384KB,超出最大值的时候,客户端会阻塞到发送语句哪里等待服务端接受数据。服务多也是一样,有一个最大的一次性接受数据的上线,本机试验最大接受数据是64KB,但是这个服务端好像不确定具体接受多少 #include #include #include #include #include #include #include原创 2016-07-14 10:34:11 · 4369 阅读 · 0 评论 -
Linux用多线程和socket实现跨机器的聊天通信功能
客户端代码如下 #include #include #include #include #include #include #include #include #include void* recvsocket(void *arg) { int st = *(int *)arg; char s[1024]; while (1) { memset(s, 0, si原创 2016-07-13 13:43:16 · 1606 阅读 · 0 评论 -
Linux客户端与服务器相互实现聊天功能
客户端代码如下 #include #include #include #include #include #include #include #include int main(int arg, char *args[]) { if (arg < 3) { return -1; } int port = atoi(args[2]); int st = socke原创 2016-07-13 11:54:09 · 5525 阅读 · 1 评论 -
1、利用多线程与有名管道技术,实现两个进程之间发送即时消息,实现聊天功能。
fifo1源文件 #include #include #include #include #include #include #include #include #include void* readfifo() { const char *sfifoname = "fifo1"; int fd = open(sfifoname, O_RDONLY); if (fd原创 2016-07-12 14:29:42 · 2861 阅读 · 0 评论 -
Linux多线程知识
第一次使用pthread,遇到的问题还真不少,现在我一一记录一下: 1.关于编译时出现 对‘pthread_create’未定义的引用 之类的错误的解决:由于pthread库不是Linux系统默认的库,连接时需要使用库libpthread.a,所以在使用pthread_create创建线程时,在编译中要加-lpthread参数: gcc -o pthread -lpthrea原创 2016-07-12 14:01:15 · 528 阅读 · 0 评论 -
Linux网络编程实现客户端服务端收发数据功能
客户端代码 #include #include #include #include #include #include #include #include int main(void) { int st = socket(AF_INET, SOCK_STREAM, 0);//初始化socket struct sockaddr_in addr; // 定义一个IP地址的结构原创 2016-07-12 11:53:36 · 2403 阅读 · 2 评论 -
通过有名管道实现两个进程单向通讯
写进程 #include #include #include #include #include #include #include #include void writefifo() { char buf[128]; memset(buf, 0, sizeof(buf)); int fd = open("fifo", O_WRONLY); if (fd == -1)原创 2016-07-11 16:22:24 · 760 阅读 · 0 评论 -
实现两个程序mysignal、mycontrl,mycontrl给mysignal发送SIGINT信号,控制mysignal是否在屏幕打印“hello”字符串。
int status = 0; void catch_Signal(int Sign) { ` switch (Sign) { case SIGINT: if (status == 0) status = 1; else status = 0; break; } } int singnal1(int signo, void (*func)(i原创 2016-07-10 17:53:24 · 1637 阅读 · 0 评论 -
Linux守护进程加上发送信号固定模式
#include #include #include #include #include #include #include #include #include #include #include #include int singnal1(int signo, void (*func)(int)) { struct sigaction act, oact; act.s原创 2016-07-10 10:28:45 · 1081 阅读 · 0 评论 -
实现一个so库文件名称为listupper.so,so文件中实现一个函数
so头文件 #ifndef HOMEWORK_H_ #define HOMEWORK_H_ #ifdef __cplusplus extern "C" { #endif void upper(const char *src, char *desc); #ifdef __cplusplus } #endif #endif /* HOMEWORK_H_ */ so的cpp文件 #inc原创 2016-07-09 17:29:58 · 443 阅读 · 0 评论 -
编写两个进程a和b,利用共享内存技术,a向共享内存写字符串,b将从共享内存中读到的字符串在屏幕上打印出来。
创建一个共享内存 #include #include #include #include #include #include #include #include #include #include #include int main(int arg, char *args[]) { int shmid = shmget(IPC_PRIVATE, 1024, 0666);原创 2016-07-09 12:55:58 · 4640 阅读 · 1 评论 -
Linux编写一个孤儿进程,这个孤儿进程可以同时创建100个僵死进程。
#include #include #include #include #include #include #include #include #include int main(void) { pid_t pid = fork(); if (pid < 0) { return 0; } if (pid > 0) { exit(0); } if (pi原创 2016-07-09 12:51:42 · 1615 阅读 · 0 评论 -
编写两个不同的可执行程序,一个打开文件,一个读文件
2、编写两个不同的可执行程序,名称分别为a和b,b为a的子进程。在a程序中调用open函数打开a.txt文件。在b程序不可以调用open或者fopen,只允许调用read函数来实现读取a.txt文件。(a程序中可以使用 fork与execve函数创建子进程)。 打开文件的进程 #include #include #include #include #include #incl原创 2016-07-09 12:54:08 · 1067 阅读 · 0 评论 -
虚拟机上rad hat网络相关设置
1、首先是开机启动网络的配置文件修改 ifcfg-eth0文件:路径是 cd /etc/sysconfig/network-scripts/ifcfg-eth0 ONBOOT选项值是NO,也就是说开机没有激活网卡,将NO改为YES即可。 2、配置固定IP地址方法,进入界面模式 点击Networkc Connections进行设置原创 2016-07-04 15:09:59 · 892 阅读 · 0 评论 -
makefile编写笔记
.SUFFIXES:.c .o //.c和.o建立关联 CC=gcc SRCS=hello.c\ add.c //同时编译两个.c文件 OBJS=$(SRCS:.c=.o)//ORJS=hello.o add.o EXEC=hello start: $(OBJS) //依赖hello.o add.o $(CC) -原创 2016-07-03 13:48:11 · 439 阅读 · 0 评论 -
设置可以在当前目录查找可执行文件的方法
建立一个新用户test5,指定用户的宿主目录为/home/test5 useradd -d /home/test5 test5 如何让linux在当前目录下找到可执行程序 第一步,没有参数的cd命令,代表回到用户的宿主目录 cd 第二步,打开宿主目录下的.bash_profile文件 vi .bash_profile 第三步,在PATH后面加:.代表在当前目录下找可执行文件原创 2016-07-03 13:47:11 · 1247 阅读 · 0 评论
分享