- 博客(13)
- 收藏
- 关注
原创 Shell常用命令
1、 ls: 类似于dos下的dir命令 ls最常用的参数有三个: -a -l -F。 ls –a Linux上的文件以.开头的文件被系统视为隐藏文件,仅用ls命令是看不到他们的,而用ls -a除了显示一般文件名外,连隐藏文件也会显示出来。 ls –l 该参数显示更详细的文件信息。 ls –F 使用这个参数表示在文件的后面多添加表示文件类型的符号,例如*表示可执行,/表示目录,@
2017-01-13 15:31:05 328
原创 Linux三大共享文件的方法
1. Samba Samba 用于Linux 和windows之间的共享,ubuntu里面默认没有安装samba 在安装好samba之后,就用开始配置samba服务: Samba服务器主要配置文件为/etc/samba/smb.conf,并且可以将NetBIOS名与主机的对应关系写在/etc/samba /lmhosts文件中。 在Windo
2017-01-12 13:45:31 591
原创 网络编程的一般步骤
对于TCP连接: 1.服务器端1)创建套接字create;2)绑定端口号bind;3)监听连接listen;4)接受连接请求accept,并返回新的套接字;5)用新返回的套接字recv/send;6)关闭套接字。 2.客户端1)创建套接字create; 2)发起建立连接请求connect; 3)发送/接收数据send/recv;4)关闭套接字。 TCP总结: Server端
2017-01-11 16:45:22 602
原创 Linux网络编程之SOCKET文件传输
[html] view plain copy #includenetinet/in.h> // sockaddr_in #includesys/types.h> // socket #includesys/socket.h> // socket #includestdio.h> // printf #includestdlib
2017-01-10 20:37:56 609
原创 理解 Linux 条件变量
1 简介 当多个线程之间因为存在某种依赖关系,导致只有当某个条件存在时,才可以执行某个线程,此时条件变量(pthread_cond_t)可以派上用场。比如: 例1: 当系统不忙(这是一个条件)时,执行扫描文件状态的线程。 例2: 多个线程组成线程池,只有当任务队列中存在任务时,才用其中一个线程去执行这个任务。为避免惊群(thrundering herd),可以采用
2017-01-09 22:19:18 271
原创 C linux 信号量
#include 信号量的数据类型为结构sem_t,它本质上是一个长整型的数。 函数sem_init()用来初始化一个信号量。它的原型为:int sem_init __P ((sem_t *__sem, int __pshared, unsigned int __value));sem为指向信号量结构的一个指针;pshared不为0时此信号量在进程间共享,否则只能为当前进程的所有线程共
2017-01-08 22:40:15 221
原创 C语言register关键字
register:这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率。注意是尽可能,不是绝对。你想想,一个CPU 的寄存器也就那么几个或几十个,你要是定义了很多很多register 变量,它累死也可能不能全部把这些变量放入寄存器吧,轮也可能轮不到你。 一、皇帝身边的小太监----寄存器 不知道什么是寄存器?那见过太监没有?没有?其实
2017-01-07 22:08:52 267
原创 typedef和#define的用法与区别
typedef和#define的用法与区别 一、typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像: typedef int INT; typedef int ARRAY[10]; typedef (int*) pINT; typedef可
2017-01-06 10:21:39 173
原创 一个单链表,不知道长度,写一个函数快速找到中间节点的位置
List *list_middle(List *l) { List *fast; List *slow; fast = slow = l; while (fast != NULL) { if (fast->next) fast = fast->next->next;
2017-01-05 16:16:42 991
原创 二分法查找
二分法查找: a是查找的数组,二分法查找的前提条件是a数据的排序是有序的。key是待查找的变量,n是数组a的长度。 int binary( int *a, int key, int n ) { int left = 0, right = n - 1, mid = 0; mid = ( left + right ) / 2; while( left
2017-01-04 11:04:06 290
原创 互斥锁mutex
在信号量最后的部分说,当count=1的时候可以用信号量实现互斥。在早期的Linux版本中就是当count=1来实现mutex的。 内核重新定义了一个新的数据结构 struct mutex, 将其称为互斥锁或者互斥体。同时对信号量的DOWN和UP操作针对struct mutex做了修改。 互斥锁的定义和初始化 因为struct mutex的定义中有一些调试相关的成员,在这里
2017-01-03 22:28:56 330
原创 Linux系统函数write()函数
1.Write函数 用法: #include ssize_t write(int fd, const void *buf, size_t count); 参数: fd:要进行写操作的文件描述词。 buf:需要输出的缓冲区 count:最大输出字节计数 使用时候偶然发现,如果设置打开fb=open("/dev/fb0",O_RDONL
2017-01-02 19:40:00 2754
原创 C++的类与对象
C++ 类 & 对象 C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心特性,通常被称为用户定义的类型。 类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法。类中的数据和方法称为类的成员。函数在一个类被称为类的成员。 C++ 类定义 定义一个类,本质上是定义一个数据类型的蓝图。这实际上并没有定义任何数据,但它
2017-01-01 21:38:59 227
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人