linux_c
文章平均质量分 89
yunshouhu
爱Java,更爱Android,学VC,搞c/c++的我。专注移动安全,游戏安全,逆向安全!十年戎马成神路,君临天下风雷动! https://github.com/yunshouhu
展开
-
GCC 安全编译选项
https://gohalo.me/post/program-c-gcc-security-options.html操作系统提供了许多安全机制来尝试降低或阻止缓冲区溢出攻击带来的安全风险,例如 ASLR、NX 等等,这里简单介绍一些常见的使用项。简介操作系统提供了许多安全机制来尝试降低或阻止缓冲区溢出攻击带来的安全风险,例如 NX ASLR PIE CANARY FORTIFY RELRO 等手段,存在 NX 的话就不能直接执行栈上的数据,存在 ASLR 的话各个系统调用的地址就是随机化的等等。转载 2021-06-01 17:32:16 · 3244 阅读 · 0 评论 -
Memory_Leak_Detection内存泄漏检测工具
https://www.mantidproject.org/Memory_Leak_Detectionhttp://valgrind.org/https://sourceware.org/git/?p=valgrind.githttps://sourceware.org/git/https://archive.codeplex.com/?p=vldhttps://www.codeproject.com/Articles/9815/Visual-Leak-Detector-Enhanced原创 2020-05-21 19:50:14 · 4073 阅读 · 0 评论 -
dlsym RTLD_DEFAULT和RTLD_NEXT
https://blog.csdn.net/ustcxiangchun/article/details/6310085https://linux.die.net/man/3/dlsymhttp://man7.org/linux/man-pages/man3/dlsym.3.htmldlsym()函数dlsym()接受dlopen()返回的动态库的“句柄” 和以空字符结尾的符号名称,返回将该符号加载到内存中的地址。如果未找到该符号,则在指定的库中,或在加载该库时由dlopen()自动加载的任何 库转载 2020-05-16 12:28:33 · 3122 阅读 · 0 评论 -
linux c之mmap使用
/* * File: main.c * Author: root * * Created on 2013年10月30日, 下午10:24 */#include #include #include #include #include #include /* * */int main(int argc, char** argv) { //获取程序目录原创 2013-10-30 22:55:00 · 6031 阅读 · 0 评论 -
linux c socket之异步IO
/* * File: UDPEchoClient-TimeOut.c * Author: 云守护 */#include #include #include #include #include #include #include #include #include #include "DieWithMessage.h"//超时设置static const unsi原创 2013-11-15 11:13:58 · 8535 阅读 · 0 评论 -
linux c socket之开源http服务器tinyhttpd
/* J. David's webserver *//* This is a simple webserver. * Created November 1999 by J. David Blackstone. * CSE 4344 (Network concepts), Prof. Zeigler * University of Texas at Arlington *//* This原创 2013-11-15 17:13:29 · 10749 阅读 · 1 评论 -
linux c socket之开源http服务器fleahttpd
/* Author: Hui Chen * * FleaHttpd: A fast Httpd as small as a flea * Published under GNU Public License version 3 * */#include #include #include #include #include #define ERROR 1#defin原创 2013-11-15 17:42:38 · 2471 阅读 · 0 评论 -
linux c socket之多线程任务
/* * File: TCPEchoServer-Thread.c 编译参数加上 -lpthread * Author: 云守护 */#include #include #include #include #include #include #include "Utility.h"//线程函数void *ThreadMain(void *arg);struct T原创 2013-11-15 14:13:30 · 5701 阅读 · 0 评论 -
linux c 开发工具gcc gdb的使用:
1、GCC最基本的用法是∶gcc [options] [filenames]其中options就是编译器所需要的参数,filenames给出相关的文件名称。-c,只编译,不链接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。-o output_filename,确定输出文件的名称为output_filename,同时这个原创 2013-11-04 21:10:06 · 793 阅读 · 0 评论 -
linux c socket之局域网广播
#include #include #include #include #include #include #include #include #include "Utility.h"//局域网广播发送,配合该工具检测http://download.csdn.net/download/ben395575481/1796582static const char * IN6ADDR原创 2013-11-20 14:59:42 · 5622 阅读 · 0 评论 -
linux c socket之多路复用:绑定多个端口
/* * File: main.c * Author: root */#include #include #include #include #include #include #include "Utility.h"//多路复用,一个server绑定多个端口,处理多个服务int main(int argc, char** argv) { if(argc<3)原创 2013-11-20 10:35:23 · 5863 阅读 · 0 评论 -
linux c sockset之多播
#include #include #include #include #include "Utility.h"int main(int argc, char** argv) { if(argc5) { //接收多播地址和端口 DieWithUserMessage("param"," "); } ch原创 2013-11-20 15:37:37 · 1891 阅读 · 0 评论 -
linxu c 函数使用实例
1. vfork/* * File: main.c * Author: root * * Created on 2013年11月1日, 上午9:34 */#include #include #include #include /* * */int gvar=2;int main(int argc, char** argv) { pid_t原创 2013-11-04 17:02:04 · 694 阅读 · 0 评论 -
linux c socket之TCPEcho4
1、客户端/* * File: TCPEchoClient4.c * Author: 云守护 客户端 * * Created on 2013年11月13日, 下午3:49 */#include #include #include #include #include #include #include #include #include "DieWithMes原创 2013-11-14 11:12:59 · 1797 阅读 · 0 评论 -
linux c socket之signal
/* * File: SigAction.c * Author: 云守护 */#include <stdio.h>#include <stdlib.h>#include <signal.h>#include <unistd.h>#include "DieWithMessage.h"//中断信号处理函数void Interr...原创 2013-11-14 18:05:09 · 2776 阅读 · 0 评论 -
linux c socket之GetAddrInfo
/* * File: GetAddrInfo.c * Author: 云守护 */#include #include #include #include #include #include #include #include #include #include "DieWithMessage.h"void PrintSocketAddress(const s原创 2013-11-14 14:11:43 · 2923 阅读 · 0 评论 -
linux c socket之通用socket,支持ipv4和ipv6
/* * File: TCPEchoClient.c * Author: 云守护 通用客户端 * * Created on 2013年11月13日, 下午3:49 */#include #include #include #include #include #include #include #include #include #include "DieWi原创 2013-11-14 15:31:28 · 12515 阅读 · 2 评论 -
linux c socket之多进程任务
/* * File: TCPEchoServer-Fork.c * Author: 云守护 */#include #include #include #include #include #include "Utility.h"int main(int argc, char** argv) { if (argc != 2) DieWithUser原创 2013-11-15 12:18:19 · 2998 阅读 · 1 评论 -
linux c socket之受限的多任务处理
/* * File: TCPEchoServer-ForkN.c 限制进程数量 * Author: 云守护 */#include #include #include #include #include #include #include #include "Utility.h"void ProcessMain(int server_sock);int main(in原创 2013-11-15 14:30:14 · 1402 阅读 · 0 评论 -
epoll使用详解(精髓)
epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越转载 2013-12-02 14:15:15 · 870 阅读 · 0 评论 -
c语言实现ping源码
从Android源码中拷贝下来的,可以在Linux直接编译运行ping.c/* * Copyright (c) 1989 The Regents of the University of California. * All rights reserved. * * This code is derived from software contributed to Berkeley原创 2013-12-11 16:34:06 · 10388 阅读 · 1 评论 -
Linux下Makefile的automake生成全攻略
http://www.yesky.com/120/1865620.shtml作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了。 在本文中,将给大家介绍如何使用autoconf和automake两个工具来帮转载 2013-12-05 11:11:04 · 590 阅读 · 0 评论 -
netbeans开发gtk程序
用了Linux 突然间想写点C的程序,大家都说GTK 好用,所以就拿GTK 作实验。第一步:搭建开发环境1.gcc和java,这个应该不难,一般的发行版里都有gcc,Java可以到www.sun.com下载,安装配置,google 一下到处都是。2.到www.netbeans.org 下载netbeans IDE ,有专门的C++ 版。3.Gtk+可以直接安装libgtk2转载 2013-12-20 20:11:35 · 1391 阅读 · 0 评论 -
ubuntu 下Gtk 开发环境建立
1.Gtk 简介 GTK (GIMP Toolkit) 是一套用于创建图形用户界面的工具包。它遵循 LGPL 许可证,所以可以用它来开发开源软件、自由软件,甚至是封闭源代码的商业软件,而不用花费任何费用来购买许可证和使用权。当前,GTK已经被成功地应用到了大量的自由软件及商业软件中,已经取得了很大的成功。 当前,GTK主要由几大组件构成:*Gtk+:GTK的主要构件,包括所转载 2013-12-20 19:51:03 · 1039 阅读 · 0 评论 -
linux c 弹出对话框源码
//头文件的东西,请根据自己的安装目录设置#include #include #include #include #include #include #include #include #include using namespace std;void close_app(GtkWidget *widget, gpointer data) {原创 2013-12-23 11:00:20 · 4950 阅读 · 1 评论 -
configure,pkg-config和PKG_CONFIG_PATH
1.什么是configure configure会根据传入的配置项目检查程序编译时所依赖的环境以及对程序编译安装进行配置,最终生成编译所需的Makefile文件供程序Make读入使用进而调用相关编译程式(通常调用编译程序都是gcc)来编译最终的二进制程序。而configure脚本在检查相应依赖环境时(例:所依赖软件的版本、相应库版本等),通常会通过pkg-config的工具来检测相应原创 2013-12-23 12:06:43 · 4647 阅读 · 0 评论 -
gtk学习笔记之简单例子
和qt非常相像,基于c语言的 gtk是跨平台的。#include //头文件的东西,请根据自己的安装目录设置#include #include #include #include #include #include #include #include #include #include #include #include #include原创 2013-12-23 11:02:24 · 2472 阅读 · 0 评论 -
如何查看linux命令源代码
用linux一段时间了,有时候想看看ls、cat、more等命令的源代码,在下载的内核源码中用cscope没能找到,在网上搜索了一下,将方 法总结如下:以搜索ls命令源码为例,先搜索命令所在包,命令如下:lpj@lpj-linux:~$ which ls/bin/ls用命令搜索该软件所在包,代码如下:lpj@lpj-linux:~$ dpkg -S /bin/lscor转载 2014-01-07 11:54:32 · 10717 阅读 · 1 评论 -
c语言 字符串的使用
1、 char *encode=getenv("LANG"); char *search="."; int pos=strcspn(encode,search); char str[1024]; strncpy(str,encode+pos+strlen(search),strlen(encode)-pos); printf("%s\n",st原创 2014-01-01 00:34:52 · 748 阅读 · 0 评论 -
Makefile详解和实例
Makefile隐含规则使用的变量在隐含规则中的命令中,基本上都是使用了一些预先设置的变量。你可以在你的makefile中改变这些变量的值,或是在make的命令行中传入这些值,或是在你的环境变量中设置这些值,无论怎么样,只要设置了这些特定的变量,那么其就会对隐含规则起作用。当然,你也可以利用make的“-R”或“--no–builtin-variables”参数来取消你所定义的变量对隐含规则的转载 2013-12-25 10:20:07 · 2798 阅读 · 0 评论 -
android c
int get_uid_from_status(int pid){ FILE *file; int uid=-1; char filename[512]; sprintf(filename,"/proc/%d/status",pid); file=fopen(filename,"r"); char line[256]; if(!file) {原创 2014-01-10 17:10:39 · 809 阅读 · 0 评论 -
linux epoll模型
epoll是Linux内核为处理大批句柄而作改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著的减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。因为它会复用文件描述符集合来传递结果而不是迫使开发者每次等待事件之前都必须重新准备要被侦听的文件描述符集合,另一个原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核IO事件异步唤转载 2014-01-14 22:43:41 · 933 阅读 · 0 评论 -
c语言libcurl 使用实例get/post方法+c语言字符串处理
#include #include #include #include #include #define TMP_FILE "tmp.html"#define HTML_BUFFER_SIZE 1024*800void split(char **arr, char *str, const char *del) { char *s = strtok(str, del);原创 2014-02-21 12:40:17 · 23377 阅读 · 0 评论 -
c语言 可变数组
#include #define bzero(b,len) (memset((b), '/0', (len)), (void) 0)//在支持的c99 的编译器下运行如gcc vc不支持c99标准中的c语言变长数组int main(int argc, char *argv[]){ int i, n; if(argc!=2) { printf("usge:%s int;",ar原创 2014-02-25 17:04:28 · 15265 阅读 · 0 评论 -
c语言注意事项
1、getchar()函数的使用方法getchar()返回值为int型,如下使用方法不正确[cpp] view plaincopy#include int main() { char tmp; while( (tmp=getchar())!=EO转载 2014-02-18 15:04:15 · 1276 阅读 · 0 评论 -
Linux头文件 C/C++头文件
linux常用头文件如下:POSIX标准定义的头文件 目录项 文件控制 文件名匹配类型 路径名模式匹配类型 组文件 网络数据库操作 口令文件 正则表达式 TAR归档值 终端I/O 符号常量 文件时间 字符扩展类型----转载 2014-02-28 15:16:35 · 1117 阅读 · 1 评论 -
libcurl在android下的移植、编译与测试
由于项目需要在NDK中使用网络开发,对于c语言网络开发来说,libcurl库是个很不错的选择,但android系统中并没有自带该库,所以就得自己移植了。下面是移植步骤:1. 下载curl源码 我这里下载的是curl-7.22.0,源码下载地址为:http://curl.haxx.se/download.htmlcurl 7.23.1 http://download.csdn.ne转载 2014-02-18 17:53:11 · 971 阅读 · 0 评论 -
c语言调用shell返回数据
#include #include #include #include #include using namespace std;std::string get_cmd_result(char* cmd) { FILE *fp; std::string str_result; char result[256]; memset(result, 0, sizeof (result原创 2014-03-25 11:24:57 · 782 阅读 · 0 评论 -
SQLite 数据库加密的一种解决方案
SQLite是一个非常小巧的跨平台嵌入式数据库,它的数据库以文件的形式存放在本地磁盘上,但是在其开源的免费版中它却缺少了一个数据库中几乎是必备的功能,那就是对于数据库的加密。SQLite的数据库文件可以被任何的文本编辑工具打开,从而获取到其中的数据,这一点令很多开发者感到不安。 但是其实SQLite是支持数据库加密的,前些天看到了网友arris的帖子,具体如下:sqlite的源代码转载 2014-04-10 17:51:52 · 1300 阅读 · 1 评论 -
linux源码之kill.c
#include #include #include #include #include int main(int argc, char **argv){ int sig = SIGTERM; int result = 0; argc--; argv++; if(argc >= 2 && argv[0][0] == '-'){原创 2014-06-18 23:35:46 · 2218 阅读 · 0 评论