- 博客(515)
- 资源 (16)
- 收藏
- 关注
原创 Linux Advance--set_fl 和 clr_fl
Unix高级编程高级IO部分提到了两个函数,这里把实现写出来:void set_fl(int fd, int flags){ int val; if ((val = fcntl(fd, F_GETFL, 0)) < 0) { printf("fcntl F_GETFL error\n"); exit(1); } val |= flags; if (fcntl(fd,
2015-11-27 21:18:05 1192
原创 VMware安装增强功能实现共享文件夹和剪贴板
因为学习工作的需要,经常会在虚拟机和windows主机之间传输一些文件,如果用命令或者借助ftp服务器会有点麻烦,而且不方便,本来就是自己用,没必要那么折腾,而且现在我们用的虚拟机基本上都是搭建在VMware下的,所以我们可以借助VMware自带的增强功能实现主机和虚拟机之间共享文件夹和剪贴板,下面是具体操作过程:1、打开虚拟机(我这里用的centos)安装vmware增强工具点击VMwa
2015-11-27 18:53:32 21831
原创 CentOS 设置快捷键启动Shell终端
进入CentOS,点击 System -> Preferences -> Keyboard Shotcuts下拉找到 Run a terminal 点击直接键入快捷键组合即可,我用的是ubuntu的 Ctrl + Alt + T
2015-11-27 15:22:32 4278
原创 windows如何打开命令行到当前目录
1. Windows 7按下shift键,单击鼠标右键,在文件夹的空白处或在文件夹上,在右键菜单里面选择 “在此处打开命令行窗口”。2. 非windows7方法一使用Windows 系统自带的“命令提示符”有两个不便,一是每次进入的都是同一个目录,还需要用CD 命令进行切换,如果遇到很长的目录名,输入起来非常麻烦。另外,如果目录名包含中文,输
2015-11-25 11:40:30 3781
原创 Linux Advance--打印标准IO流缓冲状态信息
在打印缓冲状态信息之前,先对每个流执行IO操作,第一个IO操作通常就造成为该流分配缓冲。结构成员 _IO_file_flags,_IO_buf_base,_IO_buf_end 和常量 _IO_UNBUFFERED, _IO_LINE_BUFFERED 是由Linux中的GNU标准IO库定义的。#include void pr_stdio(const char *, FILE *)
2015-11-24 22:38:49 551
原创 数独
Sudoku SolverWrite a program to solve a Sudoku puzzle by filling the empty cells.Empty cells are indicated by the character '.'.You may assume that there will be only one unique solution
2015-11-24 21:48:23 400
原创 Linux Advance--标准I/O的效率
Linux的读写流声明如下:#include int getc(FILE *fp);int fgetc(FILE *fp);int getchar(void);int ferror(FILE *fp);int feof(FILE *fp);void clearerr(FILE *fp);int ungetc(int c, FILE *fp);int putc(int c
2015-11-24 15:31:39 615
原创 Ubuntu下Sublime Text 3解决无法输入中文的方法
保存下面的代码到文件sublime_imfix.c(位于~目录)#include void gtk_im_context_set_client_window (GtkIMContext *context, GdkWindow *window){ GtkIMContextClass *klass; g_return_if_fail
2015-11-23 23:37:07 655
原创 Linux Advance--设备特殊文件
每个文件系统所在的存储设备都由其主、次设备号表示,设备号所用的数据类型是基本系统数据类型 dev_t 。主设备号标识设备驱动程序,次设备号标识特定的子设备。通常使用两个宏 major 和 minor 来访问主、次设备。#include #include #include #include int main(int argc, char *argv[]){ int i;
2015-11-23 22:31:35 464
原创 Linux Advance--目录下文件类型统计
统计目录下的文件类型需要读目录,相关的函数声明如下:#include DIR *opendir(const char *pathname);struct dirent *readdir(DIR *dp);void rewinddir(DIR *dp);int closedir(DIR *dp);long telldir(DIR *dp);void seekdir(DIR
2015-11-23 21:52:49 441
原创 Linux Advance--打印文件类型
文件相关的信息存放在结构体 stat 中:struct stat { mode_t st_mode; /* file type & mode (permissions) */ ino_t st_ino; /* i-node number (serial number) */ dev_t st_dev; /* device number (file system) */ dev
2015-11-23 18:32:12 500
原创 Linux Advance--文件IO--创建一个具有空洞的文件
这里用到了内核的 lseek 函数:#include off_t lseek(int filedes, off_t offset, int whence);文件的空洞并不要求在磁盘上占用存储区。当定位超出文件尾端之后写时,对于新写的数据需要分配磁盘块,但是对于原文件尾端和新开始写位置之间的部分则不需要分配磁盘块。 下面是测试程序:#include #include #defi
2015-11-23 12:13:48 965
原创 Linux Advance--守护进程
在linux或者unix操作系统中在系统引导的时候会开启很多服务,这些服务就叫做守护进程。为了增加灵活性,root可以选择系统开启的模式,这些模式叫做运行级别,每一种运行级别以一定的方式配置系统。 守护进程是脱离于终端并且在后台运行的进程。守护进程脱离于终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程也不会被任何终端所产生的终端信息所打断。简介守护进程,也就是通常说
2015-11-22 21:27:43 422
原创 Linux Advance--线程和fork
当线程调用 fork 时,就为子进程创建了整个进程地址空间的副本。子进程通过继承整个地址空间的副本,也从父进程那里继承了所有互斥量、读写锁和条件变量的状态。如果父进程包含多个进程,子进程在 fork 返回之后,如果紧接着不是马上调用 exec 的话,就需要清理锁状态。要清除锁状态,可以通过调用pthread_atfork 函数建立 fork 处理程序。#include int pt
2015-11-22 15:59:22 394
原创 Linux Advance--同步信号处理
下面讲一个同步信号处理的程序:#include #include #include #include #include #include int quitflag;sigset_t mask;pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;pthread_cond_t wait = PTHREAD_COND_INI
2015-11-22 14:08:23 405
原创 Linux Advance--可重入的getenv
要使 getenv_r 可重入,需要改变接口,调用者必须自己提供缓冲区,这样每个线程可以使用各自不同的缓冲区从而避免其他线程的干扰。但是注意这还不足以使 getenv_r 成为线程安全的,要使 getenv_r 成为线程安全的, 需要在搜索请求的字符串时保护环境不被修改。我们可以使用互斥量,通过 getenv_r 和 putenv 函数对环境列表的访问进行序列化。#include #
2015-11-22 10:48:12 743 1
原创 Linux--Advance getenv的非可重入版本
这里我们将 getenv 获取的环境变量写入全局变量中,所以这个版本不是可重入的。下面是测试代码:#include #include #include #include #include #include #define ARG_MAX 100static char envbuf[ARG_MAX];extern char **environ;//用于输出环境变量/
2015-11-22 10:09:40 555
原创 Linux可重入函数
1、可重入函数 可重入函数指的是可以被中断的函数。也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这类函数是不能运行在多任务环境下的。I/O代码通常不是可重入的,因为它们依赖于像磁盘这样共享的,单独的资源。2
2015-11-22 09:39:58 1816
原创 Linux Advance--输出错误信息
最近在学习 linux 高级编程中的线程控制,因为一般情况下创建线程或者给临界资源上锁是不会出错的,我想故意返回个错误码看输出的是什么,但是终端直接抛出 “segmentation fault” 我也是很纳闷,后来发现输出错误信息调用了 strerror 函数,然后我在c++ reference 上查了一下,发现这个函数必须要引入头文件 string.h 才能用。下面是我实验的源代码:
2015-11-21 11:03:44 388
原创 Linux Advance--线程清理处理函数
线程可以安排它退出时需要调用的函数,这与进程可以用atexit函数安排进程退出时需要调用的函数是类似的。这样的函数称为线程清理处理程序 (thread cleanup handler) 。线程可以建立多个清理处理程序。处理程序记录在栈中,也就是说它们的执行顺序与它们注册时的顺序相反。函数原型声明如下:#include void pthread_cleanup_push(void (*r
2015-11-20 15:10:48 534
原创 codeblocks 多线程编程时出现:对pthread_create未定义的引用,解决方法
程序已经添加了#include头文件,但编译却提示:对‘pthread_create’未定义的引用由于pthread库不是Linux系统默认的库,连接时需要使用库libpthread.a,所以在使用pthread_create创建线程时,在编译中要加-lpthread参数:gcc pthread.c -lpthread -o pthread下面是code
2015-11-20 00:00:21 15214 1
原创 Linux Advance--从一道题谈linux下fork的运行机制
首先上代码:#include #include int main(){ pid_t p1, p2; p1 = fork(); p2 = fork(); printf("pid1:%d, pid2:%d\n", p1, p2);} 要求如下: 已知从这个程序执行到这个程序的所有进程结束这个时间段内,没有其它新进程执行。
2015-11-19 21:54:35 559
原创 DP--ZOJ - 1027
DescriptionIt is well known that a human gene can be considered as a sequence, consisting of four nucleotides, which are simply denoted by four letters, A, C, G, and T. Biologists have been intere
2015-11-17 21:14:26 754
原创 DP--分组背包--HDU - 1712
DescriptionACboy has N courses this term, and he plans to spend at most M days on study.Of course,the profit he will gain from different course depending on the days he spend on it.How to arrange
2015-11-17 15:38:32 499 3
原创 DP--二维背包-- HDU - 3496
DescriptionNew semester is coming, and DuoDuo has to go to school tomorrow. She decides to have fun tonight and will be very busy after tonight. She like watch cartoon very much. So she wants her
2015-11-17 14:51:28 469
原创 DP--二维背包--HDU - 2159
Description最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务。久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完这最后一级。现在的问题是,xhd升掉最后一级还需n的经验值,xhd还留有m的忍耐度,每杀一个怪xhd会得到相应的经验,并减掉相应的忍耐度。当忍耐度降到0或者0以下时,xhd就不会玩这游戏。xhd还说了他最多只杀s只怪。请问他
2015-11-17 14:32:33 371
原创 DP--多重背包--HDU2191
多重背包二进制拆分实现跟完全背包一样的道理,利用二进制的思想将n[i]件物品i拆分成若干件物品,目的是在0-n[i]中的任何数字都能用这若干件物品代换,另外,超过n[i]件的策略是不允许的。方法是将物品i分成若干件,其中每一件物品都有一个系数,这件物品的费用和价值都是原来的费用和价值乘以这个系数,使得这些系数分别为1,2,4,…,2^(k-1),n[i]-2^k+1,且k满足n[i
2015-11-17 13:48:55 455
原创 VM tools安装错误The path "" is not a valid path to the 3.5.0-23-generic kernel headers.
安装VM tools出现了这个错误,解决方案:$ sudo apt-get install build-essential linux-headers-$(uname -r)sudo apt-get install linux-headers-`uname -r`
2015-11-14 12:31:51 718
原创 Linux下几种文件传输命令 sz rz sftp scp
Linux下几种文件传输命令 sz rz sftp scp介绍1.sftpSecure Ftp 是一个基于SSH安全协议的文件传输管理工具。由于它是基于SSH的,会在传输过程中对用户的密码、数据等敏感信息进行加密,因此可以有效的防止用户信息在传输的过程中被窃取,比FTP有更高的安全性。在功能方面与FTP很类似,不仅可以传输文件数据,而且可以进行远程的文件管理(如建立,删除,查看
2015-11-13 23:43:45 2921
原创 kali linux 使用SSH进行远程登录
一、配置SSH参数修改sshd_config文件,命令为:vi /etc/ssh/sshd_config将#PasswordAuthentication no的注释去掉,并且将NO修改为YES //kali中默认是yes将PermitRootLogin without-password修改为PermitRootLogin
2015-11-13 20:22:33 7575 4
原创 UVA - 10954 Add All
分析:实际上是哈夫曼编码,但是本题数据量很小,可以用优先队列做;#include #include using namespace std;int main(){ int n, x; while(scanf("%d", &n), n) { priority_queue, greater > q; for(int i=0; i<n; i++) { scanf("%d
2015-11-12 11:12:58 474
原创 UVA - 714 Copying Books
DescriptionBefore the invention of book-printing, it was very hard to make a copy of a book. All the contents had to be re-written by hand by so called scribers. The scriber had been given a b
2015-11-12 10:55:49 453
原创 Git push error: Unable to unlink old (Permission denied)
When you have to unlink file, you have to have permission 'w' for directory, in which file is, not for the file...git 出现unlink的问题一般是因为指定文件所在目录没有写权限, sudo chmod +w dirname -R
2015-11-10 20:13:34 3839
原创 大水题--CodeForces - 591A Wizards' Duel
DescriptionHarry Potter and He-Who-Must-Not-Be-Named engaged in a fight to the death once again. This time they are located at opposite ends of the corridor of length l. Two opponents simultaneous
2015-11-08 22:06:34 749
原创 DP--POJ - 2096 Collecting Bugs
DescriptionIvan is fond of collecting. Unlike other people who collect post stamps, coins or other material stuff, he collects software bugs. When Ivan gets a new program, he classifies all poss
2015-11-08 21:55:45 464
原创 隐式图--HDU - 2717 Catch That Cow
DescriptionFarmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K
2015-11-08 21:40:39 517
原创 DP--ZOJ - 1074 To the Max
DescriptionProblemGiven a two-dimensional array of positive and negative integers, a sub-rectangle is any contiguous sub-array of size 1 x 1 or greater located within the whole array. The sum
2015-11-08 17:49:25 532
原创 ZOJ - 1025 Wooden Sticks
DescriptionThere is a pile of n wooden sticks. The length and weight of each stick are known in advance. The sticks are to be processed by a woodworking machine in one by one fashion. It needs som
2015-11-08 16:55:48 465
原创 HDU - 1231 最大连续子序列
Description给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{ 11, -4, 13 },最大和 为20。 在今年的数据结构考卷中,要求编写程序得到最大和,现在增加一个要求,即还需要输出该
2015-11-08 16:15:03 409
Machine Learning In Action
2017-09-30
统计学习方法 (李航)
2017-04-15
机器学习实战(英文+中文PDF+源码)
2017-04-15
PEview.exe
2016-04-08
Hadoop权威指南
2016-01-15
修复windows7系统主题
2015-07-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人