<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[DerekRay的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/DerekRay</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; DerekRay]]></copyright><item><title><![CDATA[python中将hexdigest函数返回的值变成digest函数返回的值]]></title><link>https://blog.csdn.net/DerekRay/article/details/81746618</link><guid>https://blog.csdn.net/DerekRay/article/details/81746618</guid><author>DerekRay</author><pubDate>Thu, 16 Aug 2018 18:25:07 +0800</pubDate><description><![CDATA[hexdigest实际上返回的是16进制的str形式，digest返回的是bytes，用人眼看起来相等。 
例如：


  
    
      h = hashlib.new(‘ripemd160’) 
      h.update(b’12345’) 
      h.hexdigest() 
      ‘e9cbd2ea8015a084ce9cf83a3c65b51f8fa10a39’ ...]]></description><category></category></item><item><title><![CDATA[文件编码问题]]></title><link>https://blog.csdn.net/DerekRay/article/details/80888115</link><guid>https://blog.csdn.net/DerekRay/article/details/80888115</guid><author>DerekRay</author><pubDate>Mon, 02 Jul 2018 18:25:43 +0800</pubDate><description><![CDATA[打开gbk文件时，如要进行字符串替换命令，linux默认编码utf-8，替换乱码时，最好用iconv命令将gbk文件转化成utf-8，修改完毕后再将其转化为gbk格式]]></description><category></category></item><item><title><![CDATA[django博客部署问题]]></title><link>https://blog.csdn.net/DerekRay/article/details/80408172</link><guid>https://blog.csdn.net/DerekRay/article/details/80408172</guid><author>DerekRay</author><pubDate>Tue, 22 May 2018 16:55:21 +0800</pubDate><description><![CDATA[修改django代码后



sudo service nginx reload
sudo restart gunicorn-xxxxx

执行这两条命令，否则网页内容不会更新

在django setting.py修改USE_TZ=False 
否则使用的时区不是中国时区...]]></description><category></category></item><item><title><![CDATA[安装python3.6问题]]></title><link>https://blog.csdn.net/DerekRay/article/details/79865260</link><guid>https://blog.csdn.net/DerekRay/article/details/79865260</guid><author>DerekRay</author><pubDate>Mon, 09 Apr 2018 13:38:14 +0800</pubDate><description><![CDATA[./configure –with-ssl 
否则用pip3时会报找不到ssl模块错误]]></description><category></category></item><item><title><![CDATA[解决mysql中文乱码问题]]></title><link>https://blog.csdn.net/DerekRay/article/details/79857500</link><guid>https://blog.csdn.net/DerekRay/article/details/79857500</guid><author>DerekRay</author><pubDate>Sun, 08 Apr 2018 20:42:47 +0800</pubDate><description><![CDATA[用django连接mysql之后，发现中文乱码 
解决： 
在settings.py下DATABASES添加： 
‘default-character-set’: ‘utf8’, 
然后打开mysql配置文件/etc/mysql/my.cnf，添加如下代码：（一定要注意下划线和横杠的区别）

[client] 
port            = 3306 
socket          = /...]]></description><category></category></item><item><title><![CDATA[django连接mysql数据库]]></title><link>https://blog.csdn.net/DerekRay/article/details/79856903</link><guid>https://blog.csdn.net/DerekRay/article/details/79856903</guid><author>DerekRay</author><pubDate>Sun, 08 Apr 2018 19:59:23 +0800</pubDate><description><![CDATA[django版本：2.0.3 
python版本：3.4.3 
mysql版本：5.5.59

根据django官方文档，需要安装mysqlclient及MySQL Connector/Python



pip install mysqlclient
pip install mysql-connector-python --allow-external mysql-connector-pytho...]]></description><category></category></item><item><title><![CDATA[git删除暂存区和版本库中的文件]]></title><link>https://blog.csdn.net/DerekRay/article/details/79582794</link><guid>https://blog.csdn.net/DerekRay/article/details/79582794</guid><author>DerekRay</author><pubDate>Fri, 16 Mar 2018 15:49:21 +0800</pubDate><description><![CDATA[1 删除错误添加到暂存区的文件



1.1 仅仅删除暂存区里的文件

此时你想撤销错误添加到暂存区里的文件，可以输入以下命令：


  git rm --cache 文件名


上面的命令仅仅删除暂存区的文件而已，不会影响工作区的文件



1.2 删除暂存区和工作区的文件


  git rm -f 文件名




2 删除错误提交的commit

有时，不仅添加到了暂存区，而且commit到...]]></description><category></category></item><item><title><![CDATA[APUE第八章习题]]></title><link>https://blog.csdn.net/DerekRay/article/details/79207253</link><guid>https://blog.csdn.net/DerekRay/article/details/79207253</guid><author>DerekRay</author><pubDate>Thu, 01 Feb 2018 20:11:09 +0800</pubDate><description><![CDATA[8.1 在图8-3 程序中，如果exit调用替代_exit调用，那么可能会使标准输出关闭，使printf返回-1.修改该程序以验证你所使用的系统上是否会产生这种错误。如果并非如此，你怎样处理才能得到类似结果呢？ 
8-3代码



#include "apue.h"

int     globvar = 6;        /* external variable in initialized d]]></description><category></category></item><item><title><![CDATA[apue第五章习题]]></title><link>https://blog.csdn.net/DerekRay/article/details/79149093</link><guid>https://blog.csdn.net/DerekRay/article/details/79149093</guid><author>DerekRay</author><pubDate>Wed, 24 Jan 2018 16:14:34 +0800</pubDate><description><![CDATA[5.1     用setvbuf实现setbuf


  void setbuf(FILE *stream, char *buf);  
  int setvbuf(FILE *stream, char *buf, int mode, size_t size);  
  当buf为NULL,则为无缓冲，否则为全缓冲。




void my_setbuf(FILE *restrict fp, ch]]></description><category></category></item><item><title><![CDATA[stat结构体中的st_mode理解]]></title><link>https://blog.csdn.net/DerekRay/article/details/78933865</link><guid>https://blog.csdn.net/DerekRay/article/details/78933865</guid><author>DerekRay</author><pubDate>Fri, 29 Dec 2017 17:50:38 +0800</pubDate><description><![CDATA[apue第四章4-12实例changemod.c#include "apue.h"int
main(void)
{
    struct stat     statbuf;    /* turn on set-group-ID and turn off group-execute */    if (stat("foo", &statbuf) < 0)
        err_sys("stat e]]></description><category></category></item><item><title><![CDATA[linux文件权限问题]]></title><link>https://blog.csdn.net/DerekRay/article/details/78924557</link><guid>https://blog.csdn.net/DerekRay/article/details/78924557</guid><author>DerekRay</author><pubDate>Thu, 28 Dec 2017 17:27:09 +0800</pubDate><description><![CDATA[除了rwx权限以外，还有s权限，这就是设置用户ID和设置组ID，它能让进程有效用户ID和有效组ID等于程序拥有者的uid和gidapue中的access.c，open函数以有效用户ID及有效用户组ID执行其访问权限测试，access函数以实际用户ID及实际用户组ID执行其访问权限测试#include "include/apue.h"
#include <fcntl.h>int main(int ar]]></description><category></category></item><item><title><![CDATA[PROC基础知识之指示变量变量]]></title><link>https://blog.csdn.net/DerekRay/article/details/78915554</link><guid>https://blog.csdn.net/DerekRay/article/details/78915554</guid><author>DerekRay</author><pubDate>Wed, 27 Dec 2017 19:24:54 +0800</pubDate><description><![CDATA[•          指示器变量是与宿主变量相关联的一类SQL变量，它被用来监督和管理与其相关联的宿主变量，每一个宿主变量都可以定义一个指示器变量。指示器变量的具体作用如下： 
（1）       向数据库表列输入NULL值 
（2）       检查从数据库表列中选取的数据是否是NULL值，或是否发生截断问题 
•          指示变量必须被定义为2 个字节的整数类型（short） 
•]]></description><category></category></item><item><title><![CDATA[scp命令]]></title><link>https://blog.csdn.net/DerekRay/article/details/77715384</link><guid>https://blog.csdn.net/DerekRay/article/details/77715384</guid><author>DerekRay</author><pubDate>Wed, 30 Aug 2017 14:23:29 +0800</pubDate><description><![CDATA[从远程主机复制文件到本地主机（下载）scp USER@host:~/tmp/brow1031.0.tmp ~/默认情况下，scp总是覆盖目标地址的文件把本地的文件复制到远程主机上scp ~/brow1031.0.tmp  cbs@10.16.30.60:~/brow00复制整个文件夹（递归）scp -v -r ~/tmp cbs@10.16.30.60:~/tmp00为了从一个主机往另一个主机复制整]]></description><category></category></item><item><title><![CDATA[ssh无密码登录]]></title><link>https://blog.csdn.net/DerekRay/article/details/77714645</link><guid>https://blog.csdn.net/DerekRay/article/details/77714645</guid><author>DerekRay</author><pubDate>Wed, 30 Aug 2017 13:36:12 +0800</pubDate><description><![CDATA[生成ssh-keygen>ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (~/.ssh/id_rsa): 
~/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no pas]]></description><category></category></item><item><title><![CDATA[apue习题3.5 a.out > outfile 2>&1重定向问题]]></title><link>https://blog.csdn.net/DerekRay/article/details/77430779</link><guid>https://blog.csdn.net/DerekRay/article/details/77430779</guid><author>DerekRay</author><pubDate>Sun, 20 Aug 2017 17:48:35 +0800</pubDate><description><![CDATA[测试文件：#include "apue.h"int main()
{
    char buffer[] = "adasdsxvxzv";
    printf("hello,world!");
    if (write(STDERR_FILENO, buffer, strlen(buffer)) < 0)   
        printf("error");    exit(0);
}
测试结]]></description><category></category></item><item><title><![CDATA[apue第三章习题3.2 编写dup2功能相同的函数，要求不调用fcntl函数]]></title><link>https://blog.csdn.net/DerekRay/article/details/77429944</link><guid>https://blog.csdn.net/DerekRay/article/details/77429944</guid><author>DerekRay</author><pubDate>Sun, 20 Aug 2017 16:21:30 +0800</pubDate><description><![CDATA[思路： 
对于dup2用fd2参数指定新描述符的值，如果fd2已经打开，则现将其关闭。如果fd等于fd2，返回fd2，而不关闭它。#include "apue.h"int my_dup(int fd1, int newfd);int main(int argc, char *argv[])
{
    char buffer[] = "asdasfaff";
    printf("请输入新文件描述]]></description><category></category></item><item><title><![CDATA[（apue学习）第一章 UNIX基础知识]]></title><link>https://blog.csdn.net/DerekRay/article/details/77336153</link><guid>https://blog.csdn.net/DerekRay/article/details/77336153</guid><author>DerekRay</author><pubDate>Thu, 17 Aug 2017 17:04:32 +0800</pubDate><description><![CDATA[UNIX体系结构可将操作系统定义为一种软件，控制硬件资源，提供程序运行环境。通常称之为内核 
UNIX操作系统体系结构： 
 
内核的接口被称为系统调用。公用函数库构建在系统调用接口之上，应用程序既可使用公用函数库，也可使用系统调用。shell是一个特殊的应用程序，为运行其他应用程序提供了一个接口。文件和目录UNIX中一切皆文件，文件在Unix环境中是非常重要的东西，Unix文件系统就是一个虚拟层次]]></description><category></category></item><item><title><![CDATA[《linux程序设计》多线程学习]]></title><link>https://blog.csdn.net/DerekRay/article/details/77002531</link><guid>https://blog.csdn.net/DerekRay/article/details/77002531</guid><author>DerekRay</author><pubDate>Wed, 09 Aug 2017 16:53:59 +0800</pubDate><description><![CDATA[thread8.c在同一个程序中创建多个线程#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <pthread.h>#define NUM_THREADS 6void *thread_function(void *arg);int main()
{
    int res;
    pthread_t a_thre]]></description><category></category></item><item><title><![CDATA[Orange's一个操作系统的实现        安装Bochs]]></title><link>https://blog.csdn.net/DerekRay/article/details/76648576</link><guid>https://blog.csdn.net/DerekRay/article/details/76648576</guid><author>DerekRay</author><pubDate>Thu, 03 Aug 2017 20:08:51 +0800</pubDate><description><![CDATA[前言：本机环境ubuntu 16.04 bochs 2.4.6
 
一.下载
　　官网 http://bochs.sourceforge.net/
 
二.安装
　　1.将下载好的压缩包解压并进入该目录

tar vxzf bochs-2.4.6.tar.gz
cd bochs-2.4.6

　　2.安装编译程序依赖的包

sudo apt-get install buil]]></description><category></category></item></channel></rss>