shanzhizi
这个作者很懒,什么都没留下…
展开
-
搭建samba服务器
Debian或者Ubuntu下安装samba服务原创 2023-06-24 17:05:35 · 1975 阅读 · 0 评论 -
Linux下分析bin文件的10种方法
忍不住要把这个文章给转载了:http://www.embeddedlinux.org.cn/emb-linux/entry-level/202005/17-9147.html二进制文件是我们几乎每天都需要打交道的文件类型,但很少人知道他们的工作原理。这里所讲的二进制文件,是指一些可执行文件,包括你天天要使用的 Linux 命令,也是二进制文件的一种。Linux 系统给我们提供了非常多用于分析二进制文件的工具,不管你在 Linux 下从事的是何种工作,知道这些工具也会让你对你的系统更加了解。在本文转载 2020-10-20 17:43:07 · 1882 阅读 · 0 评论 -
操作系统书籍推荐
最近又在学习内核,好久没有写写博客了,习惯性的再罗列一下操作系统相关的经典书籍吧:可选:编码的奥秘计算机系统要素必选:深入理解计算机系统操作系统精髓与设计原理深入理解linux内核深入理解linux网络技术内幕linux设备驱动程序...原创 2019-10-29 18:04:28 · 3423 阅读 · 0 评论 -
goahead
一个神奇的开源服务器,代码开源! 是了解web服务器工作原理的好东西! 技术开发注意保重身体baojian123.in原创 2011-12-27 22:30:11 · 754 阅读 · 0 评论 -
linux sock_raw原始套接字编程
来自:http://blog.csdn.net/baixue6269/article/details/6863408sock_raw原始套接字编程可以接收到本机网卡上的数据帧或者数据包,对与监听网络的流量和分析是很有作用的.一共可以有3种方式创建这种socket 1.socket(AF_INET, SOCK_RAW, IPPROTO_TCP|IPPROTO_UDP|IPPR转载 2012-04-21 09:11:14 · 1310 阅读 · 0 评论 -
linux利用raw socket抓包
来自:http://www.diybl.com/course/6_system/linux/Linuxjs/20090930/177633.html#include sys/socket.h>#include sys/ioctl.h>#include fcntl.h>#include unistd.h>#include netinet/if_ether.h>#include转载 2012-04-21 09:28:24 · 7257 阅读 · 1 评论 -
安装交叉编译环境arm-linux-gcc
最近一直在弄linux 系统,由于需要进行嵌入式 操作,所以必须要安装交叉编译环境。下面是我安装交叉编译环境的过程,系统用的是UBUNTU,对初学者应该有些帮助 安装交叉编译环境 1. 安装标准的C开发环境,由于Ubuntu安装默认是不安装的,所以需要先安装一下: sudo apt-get install gcc g++ libgcc1 libg++ make gdb 2.安装转载 2012-06-08 16:24:18 · 1966 阅读 · 0 评论 -
浏览器工作原理
最近在做网站开发,所以想了解浏览器的工作原理,因此从网上搜索到了一些文章,想把他们都整理下来,因为网上重复的文章很多,已经分不清楚到底哪个是原创,转载地址可能无法找寻,今天这篇文章来自:http://weilei65.blog.163.com/blog/static/181900820072225528733/http://blog.csdn.net/shanzhiziWWW 的工作基转载 2012-01-03 17:12:40 · 871 阅读 · 0 评论 -
socket编程中send recv阻塞和非阻塞详解
int send( SOCKET s, const char FAR *buf, int len, int flags );不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。 该函数的第一个参数指定发送端套接字描述符; 第二个参数指明一个存放应用程序要发送数据转载 2012-06-13 13:13:47 · 41693 阅读 · 4 评论 -
一个不错的arm入门建议
1、抓住51开发ARM 这几个月来我一直都爬在51的问题,自己都有一点笑自己了,用了4个月的时间,来巩固51的原理和程序,还好我自己算是走过来了,自己笨,身边的高才生又看不上51的原理,他们都比较“牛”,说51过时了,你问那个做什么???我比较郁闷!过时吗?我有一点怀疑? 他们不愿意说有他们自己的理由,没有人强求,靠自己好了。 我自己个人的观点:5原创 2012-07-03 17:24:59 · 1834 阅读 · 0 评论 -
linux系统中如何查看日志 (常用命令)
cat tail -f 日 志 文 件 说 明 /var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一 /var/log/secure 与安全相关的日志信息 /var/log/maillog 与邮件相关的日志信息 /var/log/cron 与定时任务相关的日志信息 /var/log/spooler 与UU原创 2012-07-04 16:36:31 · 2854 阅读 · 0 评论 -
busybox命令大全
busybox命令大全BusyBox 是标准 Linux 工具的一个单个可执行实现。BusyBox 包含了一些简单的工具,例如 cat 和 echo,还包含了一些更大、更复杂的工具,例如 grep、find、mount 以及 telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀.简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令。转载 2012-06-30 17:23:01 · 5816 阅读 · 0 评论 -
linux下用raw socket收发包实例
http://nking.blog.sohu.com/141645994.htmlhttp://blog.csdn.net/shanzhizi#include // socket#include // socket#include // ioctl#include // ifreq #include转载 2012-04-21 10:19:11 · 15521 阅读 · 4 评论 -
gdb调试命令和方法
==GDB概述==GDB 是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDBhttp://blog.csdn.net/shanzhizi这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你转载 2011-12-25 22:07:34 · 918 阅读 · 1 评论 -
最佳的75个大牛用的安全工具
来自:http://www.hackbase.com/tech/2009-06-15/53262.html由于只有介绍,所以就不贴到工具版了。而来源的文章在结尾处的URL没有处理好,所以我也就花了几分钟修复了一下。 信息来源:猪头党乐园 因为是在nmap-hackers邮件列表中做出的评选,因此没有把nmap安全扫描器(http://www.insecure.org/nmap/转载 2012-06-26 14:50:48 · 2316 阅读 · 0 评论 -
Linux服务器监控方案参考
随着Linux应用日益广泛,绝大部分的网络服务器都使用Linux操作系统。为了全面掌握网络服务器的运行状况和趋势,需要对服务器进行全面的监控。利用Linux发行版搭建一个网络服务器可能对于许多人都是一件很容易的事情,但网络服务器正式上线后,服务器数据流动、连接数、网络流量、系统负荷等各方面都会增加,安全问题也随之而来,再考虑到日志、数据库的重要性,我想无论是哪一位系统管理员,都应该迫不及待转载 2012-07-08 16:02:22 · 2305 阅读 · 0 评论 -
大牛的技能
来自:http://www.hackbase.com/tech/2009-06-15/53260.html1、黑客的精神态度是很重要的,但技术则更是重要。黑客的态度虽然是无可取代,随著新科技的发明和旧技术的取代,这些工具随时间在慢慢的改变。例如:以往总是会学会用机器码写程序,直到最近我们开始使用HTML。不过,在1996年末,当然,这是基础的hacking技能。在1997年,理所当然的,你必须转载 2012-06-26 14:46:09 · 2414 阅读 · 0 评论 -
linux下线程编程的注意到和推荐做法
来自:http://blog.csdn.net/shanzhizi几个误区及注意点: 误区1: 分离线程不能被cancel.这是将pthread_join与pthread_cancel搞混了。thread分离可以在创建时设定,也可以用pthread_detach()在创建后设定。被设定成分离线程后,表明它在退出thread时会自动回收资源。所以不需要pthread_join.原创 2012-07-10 14:09:11 · 1318 阅读 · 0 评论 -
linux多线程之pthread_cancel结束线程
摘要:这篇文章主要从一个 Linux 下一个 pthread_cancel 函数引起的多线程死锁小例子出发来说明 Linux 系统对 POSIX 线程取消点的实现方式,以及如何避免因此产生的线程死锁。目录:1. 一个 pthread_cancel 引起的线程死锁小例子2. 取消点(Cancellation Point)3. 取消类型(Cancellation Type)4.转载 2012-07-10 14:14:43 · 2920 阅读 · 0 评论 -
Linux线程同步之互斥锁
1.申请一个互斥锁pthread_mutex_t mutex; //申请一个互斥锁你可以声明多个互斥量。在声明该变量后,你需要调用pthread_mutex_init()来创建该变量。pthread_mutex_init的格式如下:int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexat原创 2012-07-10 15:06:38 · 825 阅读 · 0 评论 -
Linux下线程详解
转载请注明出处:http://blog.csdn.net/shanzhizi线程与进程为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系统应该选用多线程?我们首先必须回答这些问题。 使用多线程的理由之一是和进程相比,它是一种非常"节俭"的多任务操作方式。我们知道,在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它原创 2012-07-10 14:02:51 · 4948 阅读 · 0 评论 -
TCPIP之四书五经---学习Linux网络编程经典推荐
作者:孟岩来源:不详 TCP/IP协议是当前广域网和局域网通用的网络协议,因此,基于TCP/IP的编程就格外重要。从应用上来说,现在直接利用C层次Socket API进行TCP/IP编程的人确实越来越少了,各种现成的框架(如ACE、Java、.NET FCL)和控件(如IP*Works)大大简化了TCP/IP编程的难度。但是,如果想要在这个领域达到融会贯通的地步,不打下坚实的基础是不原创 2012-06-28 22:34:39 · 3099 阅读 · 0 评论 -
暴雪公司关于字符串匹配的hash算法
暴雪公司有个经典的字符串的hash公式 先提一个简单的问题,假如有一个庞大的字符串数组,然后给你一个单独的字符串,让你从这个数组中查找是否有这个字符串并找到它,你会怎么做? 有一个方法最简单,老老实实从头查到尾,一个一个比较,直到找到为止,我想只要学过程序设计的人都能把这样一个程序作出来,但要是有程序员把这样的程序交给用户,我只能用无语来评价,或许它真的能工作,但...也只能如此了。原创 2012-07-11 14:54:51 · 13546 阅读 · 6 评论 -
函数time()与gettimeofday()的区别
UNIX及Linux的时间系统是由「新纪元时间」Epoch开始计算起,单位为秒。Epoch是指定为1970年1月1日凌晨零点零分零秒,格林威治时间。目前大部份的UNIX系统都是用32位来记录时间,正值表示为1970以后,负值则表示1970年以前。下面看下time.h中的time函数,sys/time.h中的gettimeofday函数#include#include原创 2012-07-02 15:39:07 · 5080 阅读 · 0 评论 -
linux—select详解
linux—select详解 来自:http://blog.csdn.net/boboiask/article/details/4055655select系统调用时用来让我们的程序监视多个文件句柄的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有一个或多个发生了状态改变。关于文件句柄,其实就是一个整数,通过socket函数的声明就明白了:int socket(in转载 2012-07-02 15:15:47 · 607 阅读 · 0 评论 -
struct timeval结构体说明
struct timeval结构体在time.h中的定义为:struct timeval{__time_t tv_sec; /* Seconds. */__suseconds_t tv_usec; /* Microseconds. */};其中,tv_sec为Epoch到创建struct timeval时的秒数,tv_usec为微秒数,即秒后面的零头。比原创 2012-07-02 15:28:31 · 1977 阅读 · 0 评论 -
关于linux下获取系统当前时间的方法汇总
Linux下获得系统时间的C语言的实现方法:1. 可以用 localtime 函数分别获取年月日时分秒的数值。#include //C语言的头文件#include //C语言的I/Ovoid main(){time_t now; //实例化time_t结构struct t原创 2012-07-02 15:57:24 · 1782 阅读 · 0 评论 -
IP地址与网段的划分
IP和子网掩码我们都知道,IP是由四段数字组成,在此,我们先来了解一下3类常用的IP A类IP段 0.0.0.0 到127.255.255.255 B类IP段 128.0.0.0 到191.255.255.255 C类IP段 192.0.0.0 到223.255.255.255 XP默认分配的子网掩码每段只有255或0 A类的默认子网掩码 255.0转载 2012-07-14 14:28:49 · 1825 阅读 · 0 评论 -
VC的内存泄漏检测工具Visual Leak Detector
初识Visual Leak Detector 灵活自由是C/C 语言的一大特色,而这也为C/C 程序员出了一个难题。当程序越来越复杂时,内存的管理也会变得越加复杂,稍有不慎就会出现内存问题。内存泄漏是最常见的内存问题之一。内存泄漏如果不是很 严重,在短时间内对程序不会有太大的影响,这也使得内存泄漏问题有很强的隐蔽性,不容易被发现。 然而不管内存泄漏多么轻微,当程序长时间运行时,其破坏力是惊原创 2012-08-08 09:34:25 · 1257 阅读 · 0 评论 -
时间预算---为什么你总是低估了项目开发周期
一个曾经与我一起工作过的经验丰富的项目经理声称,他拿到程序员的时间估算以后,先将它乘以π,然后转化下一个时间数量级后,才能得到真正的值。1天转化成3.14周。他过去因为程序员不擅长估算时间而吃尽了苦头。我创建了一个用来翻译程序员时间估算的表格,来尽量缩小估算错误。时间估算是困难的。每一个程序员都有一个现实的估计区间。低于这个区间的估计意味着(构件,测试,检查代码的)时间开销被低估了转载 2012-08-07 12:46:33 · 1970 阅读 · 0 评论 -
判断字符串是否是正确的IP格式的C语言函数
来自:http://blog.csdn.net/shanzhizi一个用于识别字符串是否是IPV4的C语言函数,保留下来供大家参考使用:#include #include #include #include #include #include int if_a_string_is_a_valid_ipv4_address(const char *str){原创 2012-09-06 17:11:10 · 5883 阅读 · 1 评论 -
linux下擦除、写入flash的简单编程参考
linux下对dataflash设备操作(擦除、写入文件)的应用程序,注意,所有的操作必须要使用mtdx的字符设备。 mtdchar的字符设备驱动编程参考!来自:http://blog.csdn.net/shanzhizi#include #include #include #include #include #include #include #原创 2012-09-12 16:34:04 · 11755 阅读 · 0 评论 -
linux从入门到高手的学习书籍整理
转载请注明出处:http://blog.csdn.net/shanzhizi仅供参考,1、初级篇熟练使用命令、熟悉Shell编程、能配置简单的服务,清楚各类服务相关的配置文件的位置, 能看懂并可修改系统提供的配置脚本(/etc/*.*)《鸟哥的私房菜基础篇、高级篇》 《Advanced Bash Shell》2、中级篇熟练使用C语言、Linux系统编原创 2012-06-28 14:03:22 · 3772 阅读 · 0 评论 -
linux C高手成长过程---书籍推荐
来源网络,作者不详! 建议学习路径: 首先先学学编辑器,vim, emacs什么的都行。 然后学make file文件,只要知道一点就行,这样就可以准备编程序了。 然后看看《C程序设计语言》K&R,这样呢,基本上就可以进行一般的编程了,顺便找本数据结构的书来看。 如果想学习UNIX/LINUX的编程,《Advanced Programing in U原创 2012-06-18 13:28:01 · 8473 阅读 · 2 评论 -
如何成为一名专家级开发人员
编者按:原文作者Jenkov是一位丹麦资深开发人员,从事软件开发已有十多年。常有读者咨询他,“怎么才能成为一位专家级的开发人员?”(这个“专 家”不是头衔,应是指硬实力,“成为专家”和“被视为专家”是两码事)。所以他在下文中给出了相关建议。另外,他也提醒到,这些建议因人而异、因所用技术 而异,并非适合所有人。什么是“专家”?成为“专家”需要多长时间? 在我开始讨论如何成为转载 2012-06-11 17:03:18 · 1234 阅读 · 0 评论 -
如何成为一名专家级的开发者
有一些年轻的程序员向我咨询,将来的路应该怎么走?俗话说,条条大路通罗马。不同的路都能走向成功。到底选哪条路,取决于自己的兴趣。可能有程序员会问:如果还没找到自己的兴趣怎么办?我的建议是多尝试,努力做,这是职业生涯的必经之路。当你积累了一定的技术和经验之后,就会面临多种选择。选择哪条路,因人而异。如果对某一种或几种技术非常感兴趣,并且能够持续钻研,经过一定时期的积累,你可以逐渐成长为专家级程转载 2012-06-11 16:55:17 · 1372 阅读 · 0 评论 -
C++学习顺序指导
先列举些c++学习经典书籍 C++:> 《C++ Primer》(fouth edition):C++经典入门读物> 《The C Programming Language》:C++之父著作,比较晦涩高深,不推荐初学者阅读> 《Effictive C++》:C++进阶读物> 《More Effective C++》:C++进阶读物> 《Inside C++ Object转载 2012-09-11 21:55:39 · 1978 阅读 · 0 评论 -
shell判断一个进程是否存在,如果不存在重启该进程
Linux下shell脚本编程实例判断一个进程是否存在,如果不存在重启该进程:#!/bin/bash##调用关闭jboss进程脚本stopMethodServer.sh#打印出当前的jboss进程:grep jboss查询的jboss进程,grep -v "grep" 去掉grep进程jmsThread=`ps -ef | grep gdms | grep jboss | g转载 2012-10-29 13:04:30 · 11684 阅读 · 0 评论 -
交换机和路由器的数据包转发流程简述
当交换机收到一个数据包时;交换机会将这个数据包包头的目的MAC信息提取出来,与自身的MAC地址表比较;情况一:如果找到对应项,则按MAC表进行转发;情况二:如果没找到对应项,则在除了接收到数据包以外的所有端口进行转发(广播);解释:MAC地址表 是MAC地址与端口对应的关系表;即某个MAC地址连接在某个端口;问题:当情况二发生时,需要在其他所有端口进行广播(这样做其实很不好原创 2012-10-25 23:18:51 · 3815 阅读 · 0 评论 -
交换机和路由器的原理
号称网络硬件三剑客的集线器(Hub)、交换机(Switch)与路由器(Router)一直都是网络界的活跃分子,但让很多初入网络之门的菜鸟恼火的是,它们三者不仅外观相似,而且经常呆在一起,要想分清谁是谁,感觉有点难!就让我们一起来看看它们之间有什么区别和联系吧!三剑客的工作原理一、集线器1.什么是集线器在认识集线器之前,必须先了解一下中继器。在我们接触到的网络中,最简原创 2012-10-25 23:30:07 · 1521 阅读 · 0 评论