今天,同学刚买不久的笔记本电脑vista系统上安装程序时总出现如下错误:
“1719错误,Windows Installer没有正确安装,错误代码0x80040201
无法访问Windows Installer服务。没有正确安装Windows Installer时可能发生这种情况。请与技术支持人员联系以获得帮助。”
查看了下windows installer服务,似乎没有什么异常,在网上查了下,才知道是msi.dll这个动态链接库文件被注销而出的问题,有说在运行栏里输cmd然后在弹出的窗口里输regsvr32 msi.dll将这个dll注册一下就行了,我试了下,但是还是不行弹出对话框  "msi.dll已加载,但是对DllRegisterServer的调用失败,错误代码为0x80040201" 。
后来才知道解决办法:
找到windows/system32/目录下的cmd.exe
右键"以管理员身份运行"
键入regsvr32 msi.dll
回车~
文件注册成功~
之前注册不成功是因为没有以管理员身份运行导致,再找个安装程序试一下果然行了。
#include <stdio.h>
#include <string>
#include <sstream>

using namespace std;

int main(void)
{
       string a = "312.29";
       string b;
       float f;
       stringstream mm;

       mm << a;
       mm >> f;
       printf("f=[%f]\n", f);

       mm.clear();
       mm << f;
       mm >> b;
       printf("b=[%s]\n", b.c_str());

       return 0;
}


#include <stdio.h>
#include <math.h>
#include <string>
using namespace std;
int main(void)
{
       float f;
       string a = "312.29";
       char c[100];
       string b;

       f = atof(a.c_str());
       printf("f=[%f]\n", f);

       if (f>2008)
               printf("more than 2008\n");
       else
               printf("less than 2008\n");

       sprintf(c, "%f", f);
       printf("c=[%s]\n", c);

       b = c;
       printf("b=[%s]\n", b.c_str());

       return 0;
}
atoi,atol,strtod,strtol,strtoul实现类型转换
所属类别:C/C++
推荐指数:★★★☆
文档人气:427
本周人气:24
发布日期:2007-6-6
atof(将字符串转换成浮点型数)
相关函数
    atoi,atol,strtod,strtol,strtoul
表头文件
    #include <stdlib.h>
定义函数
    double atof(const char *nptr);
函数说明
    atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('')才结束转换,并将结果返回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分,如123.456或123e-2。
返回值
    返回转换后的浮点型数。
附加说明
    atof()与使用strtod(nptr,(char**)NULL)结果相同。
范例
    /* 将字符串a 与字符串b转换成数字后相加*/
#include<stdlib.h>
main()
{
char *a=”-100.23”;
char *b=”200e-2”;
float c;
c=atof(a)+atof(b);
printf(“c=%.2f ”,c);
}
执行
    c=-98.23
 


   
atoi(将字符串转换成整型数)
相关函数
    atof,atol,atrtod,strtol,strtoul
表头文件
    #include<stdlib.h>
定义函数
    int atoi(const char *nptr);
函数说明
    atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('')才结束转换,并将结果返回。
返回值
    返回转换后的整型数。
附加说明
    atoi()与使用strtol(nptr,(char**)NULL,10);结果相同。
范例
    /* 将字符串a 与字符串b转换成数字后相加*/
#include<stdlib.h>
mian()
{
char a[]=”-100”;
char b[]=”456”;
int c;
c=atoi(a)+atoi(b);
printf(c=%d ”,c);
}
执行
    c=356
 


   
atol(将字符串转换成长整型数)
相关函数
    atof,atoi,strtod,strtol,strtoul
表头文件
    #include<stdlib.h>
定义函数
    long atol(const char *nptr);
函数说明
    atol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('')才结束转换,并将结果返回。
返回值
    返回转换后的长整型数。
附加说明
    atol()与使用strtol(nptr,(char**)NULL,10);结果相同。
范例
    /*将字符串a与字符串b转换成数字后相加*/
#include<stdlib.h>
main()
{
char a[]=”1000000000”;
char b[]=” 234567890”;
long c;
c=atol(a)+atol(b);
printf(“c=%d ”,c);
}
执行
    c=1234567890
 


   
gcvt(将浮点型数转换为字符串,取四舍五入)
相关函数
    ecvt,fcvt,sprintf
表头文件
    #include<stdlib.h>
定义函数
    char *gcvt(double number,size_t ndigits,char *buf);
函数说明
    gcvt()用来将参数number转换成ASCII码字符串,参数ndigits表示显示的位数。gcvt()与ecvt()和fcvt()不同的地方在于,gcvt()所转换后的字符串包含小数点或正负符号。若转换成功,转换后的字符串会放在参数buf指针所指的空间。
返回值
    返回一字符串指针,此地址即为buf指针。
附加说明
   
范例
    #include<stdlib.h>
main()
{
double a=123.45;
double b=-1234.56;
char *ptr;
int decpt,sign;
gcvt(a,5,ptr);
printf(“a value=%s ”,ptr);
ptr=gcvt(b,6,ptr);
printf(“b value=%s ”,ptr);
}
执行
    a value=123.45
b value=-1234.56
 


   
strtod(将字符串转换成浮点数)
相关函数
    atoi,atol,strtod,strtol,strtoul
表头文件
    #include<stdlib.h>
定义函数
    double strtod(const char *nptr,char **endptr);
函数说明
    strtod()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,到出现非数字或字符串结束时('')才结束转换,并将结果返回。若endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr传回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分。如123.456或123e-2。
返回值
    返回转换后的浮点型数。
附加说明
    参考atof()。
范例
    /*将字符串a,b,c 分别采用10,2,16 进制转换成数字*/
#include<stdlib.h>
mian()
{
char a[]=”1000000000”;
char b[]=”1000000000”;
char c[]=”ffff”;
printf(“a=%d ”,strtod(a,NULL,10));
printf(“b=%d ”,strtod(b,NULL,2));
printf(“c=%d ”,strtod(c,NULL,16));
}
执行
    a=1000000000
b=512
c=65535
 


   
strtol(将字符串转换成长整型数)
相关函数
    atof,atoi,atol,strtod,strtoul
表头文件
    #include<stdlib.h>
定义函数
    long int strtol(const char *nptr,char **endptr,int base);
函数说明
    strtol()会将参数nptr字符串根据参数base来转换成长整型数。参数base范围从2至36,或0。参数base代表采用的进制方式,如 base值为10则采用10进制,若base值为16则采用16进制等。当base值为0时则是采用10进制做转换,但遇到如'0x'前置字符则会使用 16进制做转换。一开始strtol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时('')结束转换,并将结果返回。若参数endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr返回。
返回值
    返回转换后的长整型数,否则返回ERANGE并将错误代码存入errno中。
附加说明
    ERANGE指定的转换字符串超出合法范围。
范例
    /* 将字符串a,b,c 分别采用10,2,16进制转换成数字*/
#include<stdlib.h>
main()
{
char a[]=”1000000000”;
char b[]=”1000000000”;
char c[]=”ffff”;
printf(“a=%d ”,strtol(a,NULL,10));
printf(“b=%d ”,strtol(b,NULL,2));
printf(“c=%d ”,strtol(c,NULL,16));
}
执行
    a=1000000000
b=512
c=65535
 


   
strtoul(将字符串转换成无符号长整型数)
相关函数
    atof,atoi,atol,strtod,strtol
表头文件
    #include<stdlib.h>
定义函数
    unsigned long int strtoul(const char *nptr,char **endptr,int base);
函数说明
    strtoul()会将参数nptr字符串根据参数base来转换成无符号的长整型数。参数base范围从2至36,或0。参数base代表采用的进制方式,如base值为10则采用10进制,若base值为16则采用16进制数等。当base值为0时则是采用10进制做转换,但遇到如'0x'前置字符则会使用16进制做转换。一开始strtoul()会扫描参数nptr字符串,跳过前面的空格字符串,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时('')结束转换,并将结果返回。若参数endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr返回。
返回值
    返回转换后的长整型数,否则返回ERANGE并将错误代码存入errno中。
附加说明
    ERANGE指定的转换字符串超出合法范围。
范例
    参考strtol()
 


   
toascii(将整型数转换成合法的ASCII 码字符)
相关函数
    isascii,toupper,tolower
表头文件
    #include<ctype.h>
定义函数
    int toascii(int c)
函数说明
    toascii()会将参数c转换成7位的unsigned char值,第八位则会被清除,此字符即会被转成ASCII码字符。
返回值
    将转换成功的ASCII码字符值返回。
范例
    #include<stdlib.h>
main()
{
int a=217;
char b;
printf(“before toascii () : a value =%d(%c) ”,a,a);
b=toascii(a);
printf(“after toascii() : a value =%d(%c) ”,b,b);
}
执行
    before toascii() : a value =217()
after toascii() : a value =89(Y)
 


   
tolower(将大写字母转换成小写字母)
相关函数
    isalpha,toupper
表头文件
    #include<stdlib.h>
定义函数
    int tolower(int c);
函数说明
    若参数c为大写字母则将该对应的小写字母返回。
返回值
    返回转换后的小写字母,若不须转换则将参数c值返回。
附加说明
   
范例
    /* 将s字符串内的大写字母转换成小写字母*/
#include<ctype.h>
main()
{
char s[]=”aBcDeFgH12345;!#$”;
int i;
printf(“before tolower() : %s ”,s);
for(i=0;I<sizeof(s);i++)
s=tolower(s);
printf(“after tolower() : %s ”,s);
}
执行
    before tolower() : aBcDeFgH12345;!#$
after tolower() : abcdefgh12345;!#$
 


   
toupper(将小写字母转换成大写字母)
相关函数
    isalpha,tolower
表头文件
    #include<ctype.h>
定义函数
    int toupper(int c);
函数说明
    若参数c为小写字母则将该对映的大写字母返回。
返回值
    返回转换后的大写字母,若不须转换则将参数c值返回。
附加说明
   
范例
    /* 将s字符串内的小写字母转换成大写字母*/
#include<ctype.h>
main()
{
char s[]=”aBcDeFgH12345;!#$”;
int i;
printf(“before toupper() : %s ”,s);
for(i=0;I<sizeof(s);i++)
s=toupper(s);
printf(“after toupper() : %s ”,s);
}
执行
    before toupper() : aBcDeFgH12345;!#$
after toupper() : ABCDEFGH12345;!#$


atof(将字符串转换成浮点型数)  
相关函数  atoi,atol,strtod,strtol,strtoul

表头文件  #include <stdlib.h>

定义函数  double atof(const char *nptr);

函数说明  atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分,如123.456或123e-2。

返回值  返回转换后的浮点型数。

附加说明  atof()与使用strtod(nptr,(char**)NULL)结果相同。

atoi(将字符串转换成整型数)  
相关函数  atof,atol,atrtod,strtol,strtoul

表头文件  #include<stdlib.h>

定义函数  int atoi(const char *nptr);

函数说明  atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。

返回值  返回转换后的整型数。

附加说明  atoi()与使用strtol(nptr,(char**)NULL,10);结果相同。

atol(将字符串转换成长整型数)  
相关函数  atof,atoi,strtod,strtol,strtoul

表头文件  #include<stdlib.h>

定义函数  long atol(const char *nptr);

函数说明  atol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。

返回值  返回转换后的长整型数。

附加说明  atol()与使用strtol(nptr,(char**)NULL,10);结果相同。

gcvt(将浮点型数转换为字符串,取四舍五入)  
相关函数  ecvt,fcvt,sprintf

表头文件  #include<stdlib.h>

定义函数  char *gcvt(double number,size_t ndigits,char *buf);

函数说明  gcvt()用来将参数number转换成ASCII码字符串,参数ndigits表示显示的位数。gcvt()与ecvt()和fcvt()不同的地方在于,gcvt()所转换后的字符串包含小数点或正负符号。若转换成功,转换后的字符串会放在参数buf指针所指的空间。

返回值  返回一字符串指针,此地址即为buf指针。

strtod(将字符串转换成浮点数)  
相关函数  atoi,atol,strtod,strtol,strtoul

表头文件  #include<stdlib.h>

定义函数  double strtod(const char *nptr,char **endptr);

函数说明  strtod()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,到出现非数字或字符串结束时('\0')才结束转换,并将结果返回。若endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr传回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分。如123.456或123e-2。

返回值  返回转换后的浮点型数。

strtol(将字符串转换成长整型数)  
相关函数  atof,atoi,atol,strtod,strtoul

表头文件  #include<stdlib.h>

定义函数  long int strtol(const char *nptr,char **endptr,int base);

函数说明  strtol()会将参数nptr字符串根据参数base来转换成长整型数。参数base范围从2至36,或0。参数base代表采用的进制方式,如base值为10则采用10进制,若base值为16则采用16进制等。当base值为0时则是采用10进制做转换,但遇到如'0x'前置字符则会使用16进制做转换。一开始strtol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时('\0')结束转换,并将结果返回。若参数endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr返回。

返回值  返回转换后的长整型数,否则返回ERANGE并将错误代码存入errno中。

附加说明  ERANGE指定的转换字符串超出合法范围。

strtoul(将字符串转换成无符号长整型数)  
相关函数  atof,atoi,atol,strtod,strtol

表头文件  #include<stdlib.h>

定义函数  unsigned long int strtoul(const char *nptr,char **endptr,int base);

函数说明  strtoul()会将参数nptr字符串根据参数base来转换成无符号的长整型数。参数base范围从2至36,或0。参数base代表采用的进制方式,如base值为10则采用10进制,若base值为16则采用16进制数等。当base值为0时则是采用10进制做转换,但遇到如'0x'前置字符则会使用16进制做转换。一开始strtoul()会扫描参数nptr字符串,跳过前面的空格字符串,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时('\0')结束转换,并将结果返回。若参数endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr返回。

返回值  返回转换后的长整型数,否则返回ERANGE并将错误代码存入errno中。

附加说明  ERANGE指定的转换字符串超出合法范围。

toascii(将整型数转换成合法的ASCII 码字符)  
相关函数  isascii,toupper,tolower

表头文件  #include<ctype.h>

定义函数  int toascii(int c)

函数说明  toascii()会将参数c转换成7位的unsigned char值,第八位则会被清除,此字符即会被转成ASCII码字符。

返回值  将转换成功的ASCII码字符值返回。

无名的敷衍安慰
想走,干脆一点
既然已经被我撞见
别道歉
我明白这个世界
承诺有谁在背
当热恋的热开始退
请准备
我的心象卖给了魔鬼
你爱的他很黑
估计你在别人的怀里
看我枯萎
一天死去一点
这爱情的坟我来掘
埋葬多余誓言
让真心合了眼
一天死去一点
让未来的梦我来会
死了永远的愿
我陪爱沉睡
无名的敷衍安慰
想走,干脆一点
既然已经被我撞见
别道歉
我的心象卖给了魔鬼
你爱的他很黑
估计你在别人的怀里
看我枯萎
一天死去一点
这爱情的坟我来掘
埋葬多余誓言
让真心合了眼
一天死去一点
让未来的梦我来会
死了永远的愿
我陪爱沉睡
一天死去一点
这爱情的坟我来掘
埋葬多余誓言
让真心合了眼
一天死去一点
让未来的梦我来会
死了永远的愿
我陪爱沉睡

老版本了,新版本看,phpMyAdmin正确的安装配置:http://www.cnblogs.com/vit4/archive/2012/10/26/2741291.html

注意是不是PHP的session没有打开,打开办法:https://jackxiang.com/post/8379/
————————————————————————————————————————

1、先下载 phpMyAdmin 安装包 ,http://www.phpmyadmin.net

2、解压后一个单独目录中(你可以自定义目录名称)

3、找到 /libraries/config.default.php文件(旧版本是根目录下的config.inc.php文件),用写字板(不要用记事本,这是UTF8编码)进行编辑。

4、查找 $cfg['PmaAbsoluteUri']
修改为你将上传到空间的phpMyAdmin的网址
如:$cfg['PmaAbsoluteUri'] = 'http://bbs.bitscn.com/phpmyadmin/';

5、查找 $cfg['Servers'][$i]['host'] = 'localhost';(通常用默认,也有例外,可以不用修改)

6、查找 $cfg['Servers'][$i]['auth_type'] = 'config'; (本人改为cookie后出现问题,最好别改)
在自己的机子里调试用config;如果在网络上的空间用cookie,这里我们既然在前面已经添加了网址,就修改成cookie ,这里建议使用cookie.

7、查找 $cfg['Servers'][$i]['user'] = 'root'; // MySQL user(用户名,自己机里用root;在网上一般为你的ftp用户名,虚拟主机提供商会告诉你的;一般不要修改)

8、查找 $cfg['Servers'][$i]['password'] = ''; // MySQL password (only needed
自己机里不用设,留空就可以了

9、查找 $cfg['Servers'][$i]['only_db'] = ''; // If set to a db-name, only(你只有一个数据就设置一下;如果你在本机或想架设服务器,那么建议留空)

10、查找 $cfg['DefaultLang'] = 'zh'; (这里是选择语言,zh代表简体中文的意思)

安装完保存OK

登陆时出现:配置文件现在需要绝密的短语密码(blowfish_secret)  

config.default.php文件里面进行设置
$cfg['blowfish_secret'] = 'cookie';
$cfg['Servers'][$i]['auth_type']     = 'cookie';

如果是在配置正确的情况下清空cookie就可以了。

http_post.h
[codes=php]
#ifndef __HTTP_POST__
#define __HTTP_POST__

#define SERVER_ADDR "123.57.252.183"
#define SERVER_PORT 80
#define SERVER_URL  "ai.egg.levoo.com"
#define SERVER_PATH "/Api/upload"

#define HTTP_HEAD   "POST %s HTTP/1.1\r\n"\
                    "Host: %s\r\n"\
                    "User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:59.0) Gecko/20100101 Firefox/59.0\r\n"\
                    "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n"\
                    "Accept-Language: en-US,en;q=0.5\r\n"\
                    "Accept-Encoding: gzip, deflate\r\n"\
                    "Content-Type: multipart/form-data; boundary=%s\r\n"\
                    "Content-Length: %ld\r\n"\
                    "Connection: close\r\n"\
                    "Upgrade-Insecure-Requests: 1\r\n"\
                    "DNT: 1\r\n\r\n"\


#define UPLOAD_REQUEST  "--%s\r\n"\
                        "Content-Disposition: form-data; name=\"image\"; filename=\"%s\"\r\n"\
                        "Content-Type: image/jpeg\r\n\r\n"

unsigned long get_file_size(const char *path);

int http_post_upload_pic(const unsigned char *IP, const unsigned int port,char *URL, const char *filepath,
                                    char *ack_json, int ack_len); //Post方式上传图片

#endif
[/codes]

[codes=php]
#cat snprint.c
#include <stdlib.h>
#include <sys/types.h>
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <string.h>
#include <sys/stat.h>
#include "http_post.h"

unsigned char http_boundary[64]={0};
unsigned char send_request[1024]={0};
unsigned char send_end[1024]={0};
int main(int argc, char *argv[])
{
    long long int timestamp;
    struct timeval tv;
    timestamp = (long long int)tv.tv_sec * 1000 + tv.tv_usec;
    snprintf(http_boundary,64,"---------------------------%lld",timestamp);
    const char *filepath = argv[1];
    unsigned long totalsize = 0;
    unsigned long filesize = -1;
    unsigned long request_len = snprintf(send_request,1024,UPLOAD_REQUEST,http_boundary,filepath); //请求信息
    unsigned long end_len = snprintf(send_end,1024,"\r\n--%s--\r\n",http_boundary); //结束信息
    struct stat statbuff;
    if(stat(filepath, &statbuff) < 0){
        return filesize;
    }else{
        filesize = statbuff.st_size;
    }
    printf("eggpic.jpeg's filesize %ld\n",filesize);
    return 0;
}
[/codes]
#gdb a.out
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-94.el7
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /data/codesdev/http_post/a.out...done.
(gdb) set args eggpic.jpeg
(gdb) b 23
Breakpoint 1 at 0x400645: file snprint.c, line 23.
(gdb) r
Starting program: /data/codesdev/http_post/a.out eggpic.jpeg

Breakpoint 1, main (argc=2, argv=0x7fffffffe798) at snprint.c:23
23          unsigned long end_len = snprintf(send_end,1024,"\r\n--%s--\r\n",http_boundary); //结束信息
(gdb) p argv[1]
$1 = 0x7fffffffea21 "eggpic.jpeg"

(gdb) p filepath
$2 = 0x7fffffffea1b "eggpic.jpeg"

if(stat(filepath, &statbuff) < 0){
(gdb) p send_request
$4 = '-' <repeats 29 times>, "4197109\r\nContent-Disposition: form-data; name=\"image\"; filename=\"eggpic.jpeg\"\r\nContent-Type: image/jpeg\r\n\r\n", '\000' <repeats 887 times>

30          printf("eggpic.jpeg's filesize %ld\n",filesize);
(gdb) p filesize
$3 = 13473
(gdb) n
eggpic.jpeg's filesize 13473
31          return 0;
(gdb) n

snprintf在C语言里字符串上,Http里使用较多,
int snprintf(char *restrict buf, size_t n, const char * restrict  format, ...);
函数说明:最多从源串中拷贝n-1个字符到目标串中,然后再在后面加一个0。所以如果目标串的大小为n
                 的话,将不会溢出。

函数返回值:若成功则返回存入数组的字符数,若编码出错则返回负值。

Result1(推荐的用法)

       #include <stdio.h>
       #include <stdlib.h>
      
       int main()
       {
      
           char str[10];
           snprintf(str,sizeof(str),"0123456789012345678");
           printf("str = %s \n",str);
          return 0;
     }

root@darkstar:/home/zhangl/unixtest/chapter9# ./testsprintf    

str = 012345678


Result2:(不推荐使用)

        #include <stdio.h>
       #include <stdlib.h>
      
       int main()
       {
      
           char str[10];
           snprintf(str,18,"0123456789012345678");
           printf("str = %s \n",str);
          return 0;
    }

root@darkstar:/home/zhangl/unixtest/chapter9# ./testsprintf                    

str = 01234567890123456


snprintf函数返回值的测试:
    #include <stdio.h>
    #include <stdlib.h>
    int main()
    {
           char str[10];
           int n=0;
    
           n=snprintf(str,sizeof(str),"%s","abc");
              printf("str = %s \n",str);
              printf("n=%d\n",n);
      
              return 0;
   }


Result:

root@darkstar:/home/zhangl/test# ./testsnprintf    
str = abc
n=3
select left(email,locate('@',email)-1),(select name from domain where domain.enterpriseid = email.enterpriseid limit 1) as name from email where id=492699 and left(email,locate('@',email)-1)='chengjr' limit 1
自己是个怕孤独的人,偏偏又爱上自由自私的灵魂!
注意:读这篇文章的人,凡事有心脏病的,请你不要往下看了,凡事想有条理的也不要往下看了,作者一会这一会那,东拉西扯,一会理智一会疯狂,观点立场极不坚定,甚至模糊让你不知道他在说什么,这会让你疯掉的。
 引子:        
       问世间情为何物,指教人生死相许!天下哪有真情在,竹篮打水往来空!今朝有酒今朝醉,明日无酒在掂量!普天男儿皆薄情,可怜天下女儿心!珍重!珍重!
 卖卖关子:
              最近啊,自己觉得呢好像比较浮华,就是一个字:浪,让人觉得我不把大家当回事,也就不把自己当回事情。很想写点文章让大家觉得我还是蛮有水准的,特别对这这个纷扰的世界,常人说呀,如果说你这个人是真的爱一个人,你就得关心和付出更多来了解这个社会,让你的爱人让你觉得你很有安全感,这个男人特有的品性和女人的天然个性往往是背道而驰,问题一困扰就上了千年,在这个物化的社会尤甚!
 But,世界很多人在说: 问世间情为何物,指教人生死相许,对这个时代来比较广泛的说根本就是句屁话!
          让我想起了金庸的神雕侠侣的诗句:我兀立火中,任红焰火舌在我身周飞舞。生亦何欢,死亦何苦?问世间情是何物?直教生死相许?天南地北双飞客,老翅几回……感觉他们的诗句很有个性,很有震撼的感觉。对感情好像凌驾与生命之上。迫于好奇,我查了一下。这并非出自金庸的手笔,而是在金章宗泰和五年,元好问(1190—1257)金文学家写的文章,《雁丘词》,如下:

问世间情是何物,直教生死相许?
天南地北双飞客,老翅几回寒暑!
欢乐趣,离别苦,就中更有痴儿女。
君应有语:渺万里层云,
千山暮雪,只影向谁去!

横汾路,寂寞当年箫鼓,
荒烟依旧平楚。
招魂楚些何嗟及,山鬼暗啼风雨。
天也妒,未信与,莺儿燕子俱黄土。
千秋万古,为留待骚人,
狂歌痛饮,来访雁丘处。
    全词行文并不复杂,而行文腾挪多变,用事实回答了什么是至情,寄人生哲理于淡悟之外。当时,我看到李莫愁《神雕侠侣》中的狂歌当哭,雌雄双雕的先后投水而死,更增加了本文的意境。 遥想双雁,“天南地北”冬天南下越冬而春天北归,“几回寒暑”中双宿双飞,相依为命,一往情深。既有欢乐的团聚,又有离别的辛酸,但没有任何力量可以把它们分开。而“网罗惊破双栖梦”后,爱侣已逝,安能独活!于是“脱网者”痛下决心追随于九泉之下,“自投地死”。 古与今,人与雁,更加感到鸿雁殉情的凄烈。但是死者不能复生,招魂无济于事,山鬼也枉自悲鸣,作者本要咏雁,却从“世间”落笔,以人拟雁,赋予雁情以超越自然的意义。
         无论古代,还是在现代,都离不开一个情字,我们现代人却往往寄情与一些让人感觉浮华的东西,人性难道照旧了我们必学要这样吗?其实世间本无事,庸人自扰之。
 但是现代的爱情难免也变了一些味道,昨天和哥们出去喝酒,带上了他女朋友,也带上了他女朋友的前男友,这样的喝酒我觉得很有意思,我发现我没有更上时代的变化,没有一颗豁达的心,我也难以想象她前男友要和我朋友的先女友结婚,我觉得太搞笑了吧,呵呵,但是我朋友没有向我想象的那么做,大家一块喝酒一块吃肉,毫不感觉,我真是佩服有这样的朋友,大家很诙谐的认同说这是一个鸿门宴,最后以女人哭了,男人走了收场,最后女人又笑了,说我朋友想什么都不给她说,哥几个好言相劝,终于达到一个完美结局,女人呢留下了句:她回家后要哥几个看好我朋友,破涕为笑,我惊呆了,笑hight了。
       今天,更确切的说是昨天,这篇文章是昨天开写的,在学校27号楼准备骑车去国图,看到一个女孩子眼睛红红的,旁边已有一个女孩站着,我开自行车时候,听到那女的说:我又不能天天盯着他。。。
      晚上,和一宿舍哥们说笑,听说他和前女友分了,原因很简单:那女孩子要留北京,他本人是委培要回贵州,于是没办法,分了。可能里面有水分,但毕竟是分了。。。
 再问世间情为何物,指教人生死相许,连生死都可以超越,那世间和距离难道还有问题吗?现在的人们都是向上面的方式来解决感情,对感情玩世不恭,直到对感情麻木,在经历多次感情历练成为所谓的情场高手之后。再找一个有一定事业基础而又爱他的男人把自己这么一嫁,从世俗的角度来看对她来说这是一个不错的结局; 而对于你我这些曾经梦想和这个美女山盟海誓,缠绵一生而为之付出一切的痴心男人来说,面对的将是这一生用时间无法弥补的心灵和感情的双重伤害。
   有人说兄弟,你这是什么意思啊。。。不就想说女人的不好嘛,何况好像跑题了,现实就是让我们感觉其实什么都无所谓。。。成也女人,败也女人,
   我怎么写都感觉离题太远了,不写也罢。今天,我觉得我们应该写点怎样能摆脱这种外界的想法入手,观点可能有很多的不惊人意,其实人嘛,毕竟是感情动物,在这个纷繁的世界中,看到美好的好事物都挺爱慕的,然后就想占有,你呢,有两种选者,你是占有者要么你是旁观者,女人其实也是万事万物的一种,上帝在创照万物的时候也是用泥土来创照的人,我们难免都有花开花落,自然界中难免都有各种事物在不同的状态,有些东西你不得不认命,你就是那个枯萎的植物,而你旁边站着很多高大的灌木从,你又能怎样呢?你说跟天斗跟神斗,就是你砍掉了周围的灌木从,你就能很好的生活吗?何况你们本不是一个相同的事物,但你是植物,就像人类一样,你是人,但是你不是那个群,所以,你不得不服有些人说,这个社会好的女人都让那个狗日了,呵呵,你不觉得你很无聊吗?这个可以当作饭后无聊的调侃,但是,你千万别认为真是这样的,那你就错了,其实,人能当一条狗来做一些事情,我觉得这个人很不错了,对主人的忠诚对外敌的狂吠,尽管有些时候觉得狗很听话这点好像放大了它的缺点,但是这个在女人面前确实是一个杀手锏,难道你能说女人喜欢千依百顺的男人你有些不服气吗?就向植物喜欢阳光一样,难道它有错吗?你说这个法则不对,那你就改变这个自然界的法则吧,我觉得你不行,你可以改变自己,但你不能改变它的法则,这就是你来到这个世界唯一能做的,你变成狗啊,哈哈。。。我就喜欢被人说,哈哈。你觉得这个太残酷,来解决这个问题的问题,唯有老子的自然的面对,其实就是让你安分,你就是大自然的一分子,安于现状未必是件很丢脸的事情,而你的爱情观难道不会想到自己也就只能达到这个水平吗?他们漂亮有资本难道不就改得到有经济实力和美女的陪伴吗?我觉得很正常,抱着自己的美女,然那些愤恨人死一边去吧。
     这样可能怂恿美女们都嫁个有钱的男人,呵呵,你得有资本呢,你说高校那些车里进出的妹妹们容易吗?哈哈,人家也不容易啊,所以,这个都是很自然的,你也可以啊,哈哈、
在这样一种观念下务必会造成社会的混乱,于是有人说这个问题其实最好是不能成为一条人人公用的法则,就想现在的房地产说:我们只为富人盖房子一样,一石激起千成浪,这个不也是商人的获利本质的体现嘛,这个也有错嘛?所以,人们往往在寻求本质的时候反而要将他们隐藏起来,这个问题是由于德,人们都要面子,尽管穷的叮当响,以前还越穷越光荣嘛,所以,这个反响大也是理所当然。
 而,问世间情为何物难免夸大了很多感情的因素,其实杨过和小龙女就是一个特殊的例子,不容说好似违背了德的要求,师傅和徒弟的结合。而这个问世间情为何物难免有炒作之嫌。。。
       你看看历史上那些感情很好的例子:刘郎织女,祝英台梁山伯,他们都是遗憾收场,最后隔着无数的天河和最后已死相争,他们的结局如此悲惨,如此的解决方法也不是现代人所提倡的,感情嘛,难免有个出现错误的时候,人生苦短,这是想的开的社会,这是个计较得失的社会,为此,大家对感情的不看重也是必然的,其实他们的生活好了,反而让大家觉得很幸福,不是嘛,真的感情是需要折磨的!
    有一个老乡说:长得帅又不能当饭吃,这句话在这个物资还算丰富的社会中,能说名什么呢?感情是要物资基础的。物资和精神关系倒低还是应了马克思的话。。。。人生何其短,何必苦苦恋,我觉得未尝没有道理,就让那些问世间情为何物的名言当作我们的理想吧,没有得到的东西是最好的,永远让人心痒痒难耐。这岂不更好,去它妈的感情,去它妈的生死相许,我们有钱,我们就有一切,就能拥有这个世界。。。。我哭了,我向神祈祷,我得到笑的回答是:now!
    我懂了,那就是:share!
                                               刚才写的全他妈的白写了!:)


如有困难参考:

http://www.toplee.com/blog/329.html
http://tieba.baidu.com/f?kz=206696384
http://oss.lzu.edu.cn/blog/article.php?tid_45.html


#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>  
#include "/usr/local/mysql/include/mysql/mysql.h"
int main(void)
{
char mysqlServer[20] = "10.88.15.114";
char query[300];
MYSQL myData;
MYSQL_RES *res;
MYSQL_FIELD *fd;
MYSQL_ROW row;
int rowCount = 0;
int colCount = 0;
int i, j;

mysql_init( &myData );
if(mysql_real_connect( &myData, mysqlServer, "web", "sinatest", "enterprise",3306,NULL,0))
{
printf("connect mysql error!\n");
return 0;
}

sprintf(query,"select * from domain");
if( mysql_query(&myData, query) != 0 )
{
printf("query error!\n");
return 0;
}
else
{
res = mysql_store_result( &myData );
rowCount = (int) mysql_num_rows( res );
colCount = (int) mysql_num_fields( res );
printf(" result: %d records found\n fields: %d \n", rowCount, colCount);
row = mysql_fetch_row( res );
for(i = 0; i < rowCount; i++)
{
printf(" show: ");
for( j = 0; j < colCount; j++)
{
printf("[ %s ] ", row[j] );
} // end for
printf(" \n ");
} // end for
}

return 0;
}


--------------------------------------------------------------
编译:
gcc -o aaa mysqlconn.c -L /usr/local/mysql/lib/mysql/*.a -lz -lm(混乱哈哈)
注意:
要#include <math.h> 编译的时候要加上-lm.
否则出现:

/usr/local/mysql/lib/mysql/libmysqlclient.a(password.o)(.text+0x308): In function `scramble_323':
: undefined reference to `floor'


连接是这样做的:  

if(mysql_real_connect(conn,host_name,user_name,password,port_num,socket_name,flags)==null)  
  {  
  print_error(conn,"mysql_real_connect()   failed");  
  return(null);  
  }  
  if(db_name   !=null)  
  {  
    if(mysql_select_db(conn,db_name)!=0)\{  
    {  
        print_error(conn,"mysql_select_db()   failed");  
#file a b c makefile
CGI_DIR =bin


all:myfile

myfile:filea.o fileb.o filec.o
        gcc filea.o fileb.o filec.o -o myfile
filea.o:filea.c head.h
        gcc -c filea.c
fileb.o:fileb.c head.h
        gcc -c fileb.c
filec.o:filec.c head.h
        gcc -c filec.c

install:
        @if [ ! -d $(CGI_DIR) ]; then \
        mkdir -p $(CGI_DIR); \
        fi
        cp myfile /usr/home/xiangdong2/c++/make/$(CGI_DIR)




clean:
        rm -f *.o;
        rm -rf myfile
        rm -rf bin

(注意:这儿的要执行的命令要用tab键隔开,否则出现:operation erro)



———————————shell环境下直接make生成可供gdb调试的二进制文件。—————————————
root@192.168.137.128:~/dev_codes_all/arts_debug_book/arts_debug/chapt1# make ins CFLAGS="-Wall -o2 -g"
cc -Wall -o2 -g    ins.c   -o ins
root@192.168.137.128:~/dev_codes_all/arts_debug_book/arts_debug/chapt1# gdb ins
GNU gdb (GDB) Red Hat Enterprise Linux (7.2-60.el6)
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /root/dev_codes_all/arts_debug_book/arts_debug/chapt1/ins...done.
(gdb) l
53      void print_results()
54      {
55        int i;
56        for (i = 0; i < num_inputs; i++)
57          printf("%d\n", y[i]);
58      }
59          
60      int main(int argc,char **argv)
61      {
62        get_args(argc,argv);
(gdb)
说到看过次数最多的电影,我想应该是《教父》,准确的说是《教父》系列。

听说,斯坦利·库布里克(Stanley Kubrick)看《教父》看到第十遍的时候承认,这可能是历史上最伟大的电影。这样的天才看了十遍就下了这样的定论,而我这样的庸才只看了一遍就完全被震撼了。不过我又看了将近五十遍,包括后边的两个续集,细算一下等于我花了五百个小时去看同一部电影,我没觉得疯狂和奢侈。即便看了很多遍,每次我都一样的投入,总是告诉自己:只看半小时,只看这一段,但不知不觉又看到了结尾。经常看到有评论说,《教父》第三集和前两集不相配,水平欠缺。我不喜欢看那些影评人的评论,他们只是把电影当做职业,我难以相信一个为了赶稿而看片的人能真正的读懂一部电影。所以对于我来说,《教父》就是我的最爱,我给三集都打十分。

以下是我对电影一些零碎的记忆。
  
1. 开场的书房一段戏被称为影史最伟大的十个开场之一,但我倒觉得这一组镜头在近十个小时的电影里,只是一般稍好的水平。不过从这里我开始喜欢上汤姆TomHagen ,他可是我在这部史诗里最欣赏的一个角色,因为我认为他身上具有一个普通男人最有 价值的两种素质:冷静和忠诚。这和天赋无关,和地位无关,任何一个男人都应有这样的素质,他比任何人做的都好。说到书房的这场戏,我最印象深刻的是马龙·白兰度(MarlonBrando)起身的时候,他放下那只举世闻名的猫,以一个很cool的姿势站了起来,打算告诉殡仪馆的老板什么是友谊,也就是说屋子里的四个人有三个都站了起来,此时我往往会注意汤姆,他非常优雅的放下酒杯,standing,walking slowly,步伐迷人。好象类似的场合我可没有这么识趣,会傻乎乎的坐在那里。

2.接下来是婚礼。我有一个疑问,三集《教父》的开头都有意大利人狂欢的场景,第一次是康妮的婚礼,第二次是迈克向教育基金捐款,第三次是迈克接受教会的奖励。难道科波拉想为自己的经典作品贴上一个标签?第四集开头是什么?文森特的婚礼?

3. 和索龙多的谈判中桑尼插了半句话,当然是因为教父打断了他,可遗憾的是索龙多已经明白了他的意思。我一直认为是他这句话,他这半句话为教父招来了杀身之祸。如果科里昂家族里没有人支持贩毒,恐怕杀了教父也没用,何况他还说大家井水不犯河水。但就凭桑尼的这半句话,索龙多听到了桑尼的合作倾向,于是他决定干掉教父,那样将由长子桑尼接管家族生意,他们就有可能合作了。后来教父教训了儿子:Never tell anybody outside the family what you are thinking again。相似的是在第三集里迈克用类似的话教训了文森特:Never let anyone know what you are thinking。

4. 阿尔·帕西诺(Al Pacino)接受金球奖终身成就奖的时候,有一个让我很激动的场面,颁奖嘉宾凯文·斯派西(Kevin Spacey)带领全体观众一起高喊阿尔的名字,然后在众人“AlPacino!”的欢呼声中,凯文又和大家重温了阿尔的很多精彩表演,但得到最高评价的是两个经典场景,第一个是《闻香识女人》里那段探戈,第二个就是迈克在刺杀索龙多和警察局长前那三十秒的表演,据说试镜的时候他就是靠这一段征服了派拉蒙的老板。而那三十秒也让我很着迷,看了很多遍也学不来的。

5.桑尼死后,教父把他的尸体带到了殡仪馆,让老板来为之整理遗容。似乎教父的地位不容许他在别人的面前显露出一丝的软弱,在这场戏之前还不太容易看到教父对于失去儿子的真正反应。他在殡仪馆哭了,马龙·白兰度在这里的表演体现了他演技之神的价值,我能感受到一个父亲对于儿子最真挚最深沉的爱,那爱打动了我。我想那一刻对于一个父亲来说,即便是一位高高在上的big shot,也实在是太痛苦,太难承受了。

6.为了让迈克能平安的回来,教父组织了五大家族的一次会议,主题是和谈。曾有人这样评价白兰度的表演:如果你想知道‘老奸巨滑’的最高境界,那来看这一段。此时他已经有收拾五大家族首领的计划了,但还需要一个导演,就是迈克,此外他还需要暂时的稳定,所以有了这次会议,结果他也做到了。他的有让迈克有了足够的时间来安排这一切。

7. 在弗朗西斯·福特·科波拉(Francis Ford Coppola)的所有作品中,我最喜欢三部:《教父》、《吸血僵尸惊情四百年》、《现代启示录》。而他最招牌的剪切也都出现在这几部电影中,我还是更偏爱迈克处理五大家族首领的这一部分,暗杀和洗礼的穿插进行。“Michael,do you believe in God?”,“I do.”你觉得他是不是另一种意义上的上帝?我看是,至少那天他的手下们会这样认为。辛德勒告诉德国军官:当你能够杀人时候却放他一条生路,这才能证明你的权力。但在这里迈克证明自己绝对权力的手段是:杀掉别人认为你无法杀掉的人。

8. 卡洛出卖了自己的朋友,也是自己妻子的哥哥,所以迈克是不会放过他的。在卡洛的家里他用自己那逼人的威慑很轻松的让卡洛招了供。记得他怎么说的吗?“卡洛,别告诉我你是无辜的,因为那会是对我智力的一种侮辱,我会很生气。”我想如果牛津词典找不到对cool的合适解释,可以考虑把这一段加上。

9. 其实凯伊看了报纸之后已经怀疑迈克的所作所为了,但她还是希望从丈夫的 嘴里得到确认,因为她相信他不会骗她。而迈克本不想说,可伊逼得太紧,所以他决定撒一个慌。坦白的说,我第一次看到这里的时候也在心里暗自祈祷,希望迈克骗一次自己心爱的女人,这并不会影响他在我心目中的地位。随后凯伊相信了他,打算去为他倒杯茶,这时迈克开始接受手下的致敬,艾尔很有意味的关上了门。请留意黛安·基顿的表情,你说她在想什么?

10. 在看《教父续集》的时候,我一直很惊叹罗伯特·德·尼罗(Robert De Niro )对马龙·白兰度的模仿,很多姿势都是相当惟妙惟肖的。而这一集里阿尔·帕西诺就更令人兴奋了。他那冷冷的眼神使你很难把注意力从他身上挪开。我很为他不平的是,演了三集《教父》却没能得一座奥斯卡奖,哪怕是第一集的配角。估计看的太多,评委们把阿尔当成了本色演出。

11. 迈克在经历了袭击之后,决定把家族的管理全都交给汤姆,独自去调查谁是内线。他告诉汤姆:我们的兄弟其实都是生意人,他们的忠诚都是建立在钱的基础上的。换句话说就是不能轻易相信任何人,这也是他们为什么这么重视家族这个概念的原因,因为这是他们最能感到安全感的一个人群。可迈克做梦也没有想到是自己的亲哥哥把敌人带进了他的宅院。

12. 记得佛雷多是怎么说漏嘴的吧?他一到交际场合就会忘乎所以,很快让迈克知道了他和海门罗斯的关系。当时,迈克就站在他的身后,面无表情的看着他,只等他的话证实自己的怀疑。此后他在舞会上找到了自己的哥哥,狠狠的吻在他的嘴上(你还见过这样的cool的吻吗?),他还能怎么表达自己无奈又失望的感情呢,“我知道是你了,我知道是你了,你伤透了我的心!”

13. 在讨论如何处理海门罗斯的时候,汤姆反对冒险,而迈克却决定立刻解决敌人,不给他以喘息的机会。“If anything in this life is certain, if history has taug ht us anything,it’s that you can kill anyone.”这句话的确是一个黑帮老大才有权力说的话,够蛮横,够气魄。而他的决断成功的除掉了一个劲敌,但也牺牲了三大心腹中的一个,洛可。

14. Frankie本是迈克的人,由于海门罗斯的挑拨才公开反对迈克的,所以当他明白真相后放弃了对迈克的指证。可惜行有行规的,事情不会这样结束,汤姆和弗兰基进行了一段谈话来解决问题,那真是一次默契的对话:
Tom: 如果反对罗马国王的长老失败了,他还有一次活命机会,…
Frankie: 那是有钱人,小人物可不行,小人物会被清除干净,除非他自行了断 ,才可
保全家族的财富,使家人得到妥善的安排。
Tom: 那真是一个好机会,好交易。
Frankie: 然后他回到家里,坐在热水里,切开手腕,流血至死。
Tom: 你会没事的,Frankie,一切都会没事的。
Frankie: 谢谢,Tom,谢谢。
随后,弗兰基像他自己说的,用最悲壮的方式表达自己的忠诚,保住自己的家族 。

15. 第二集的结尾是我最喜欢的一个家族场面,四个儿子和一个女儿等着父亲回来切蛋糕,共庆生日。那温暖的家庭氛围让我羡慕不已:桑尼在迈克头上的一吻,佛雷多对弟弟简单的祝贺,还有桑尼和汤姆的嬉闹,只是没有看到父亲的出场。据说,科波拉打算让白兰度来客串一个镜头的,可该死的制片方由于和白兰度有矛盾拒绝了这个请求。他们不知道他们可能错过了一个最伟大的结尾,由于白兰度的缺席,这个结尾好像还是少了点什么。

16. 科波拉起用自己的女儿索非亚(Sophia Coppola)出演迈克的女儿一角被认为是他最大的败笔。可我看来倒也不至于太差,毕竟和她演对手戏的人都是影帝影后级别的大腕,能有这样的表演已经很不错了。她和安迪·加西亚(Andi Garcia)之间还是能擦出火花的,尽管加西亚的演出超出了他不少。

17. 迈克接受教会的嘉奖,在照完全家福之后还切了蛋糕,很漂亮很气派的大蛋糕。记得是谁送的吗?恩佐。就是那个在第一集里要被美国政府遣送回意大利,却和老板的女儿相爱的那个意大利小伙子。为了把他留在美国和女儿完婚,他的岳父只得去求教父帮忙,第一集后来没有交代,到了这里我们才又有了他的消息。

  
18. Fonda家族也算是好莱坞的演艺世家了,布里吉特.方达(Bridget Fonda)在第三集里也惊艳了一小把,被文森特骗上了床。由于家庭背景,她的气质确实与众不同,加上傲人的身材,成为第三集里的一个小小的亮点。我认为,即便在这种史诗中演一个小角色也比在《龙之吻》这种烂片中演个主角强百倍。
  
19. 乔伊·萨沙对委员们的大屠杀是我很钟爱的一场戏,我个人把这次的直升机袭击和迈克·曼《盗火线》里的银行大战、吴宇森《喋血双雄》中的教堂决战并列为三场最伟大的枪战(或许我看的太少了,不过这三种风格的确普及得很广)。

20. 迈克因为下令处决自己的哥哥佛雷多而产生的自责和内疚在他的老年变的更加剧烈,那本就是一个很难下定的决心,他最后一次拥抱哥哥时对手下使的那个眼色深深的印在我的脑海里。看到他中风时大喊“Fredo”,我几乎哭了出来,那是一声撕心裂肺的惨叫,还带着绝望般的忏悔。电影的后一半他真的有机会在上帝面前告解,他在神父的善导下反思自己,当他哭着说他杀了自己母亲的儿子时,连神父都停顿了一下。的确,这实在是太深重了,这样的罪责已经压了迈克几近一生。

21. 艾尔(Al Neri)是迈克的贴身保镖,他在三集《教父》中都露了面,这可是一个难得的荣耀。由于我对忠诚的迷恋,使我对艾尔的好感由来已久。第一集里他露面很晚,但他完成了迈克的大清洗计划中最重要的一击,是他结果了巴奇尼。年轻的他身手敏捷,枪法如神。到了第二集里,他已经是迈克不可缺少的得力助手,可惜才两年他就胖了不少,肚子明显大了一圈,想来不是导演的安排。最后一集里他派人帮助文森特除掉了乔伊· 萨沙,结尾又在罗马教堂亲自出手。让我高兴的是,他减肥很成功,简直比第一集里还要苗条。
 
《教父》里的故事太多了,我还有很多想说却说不完的话。其实每个人都会有一部最钟爱的电影,一部最贴近你的心的电影,只不过因为大家的经历和背景,才会有或大或小的差距。如果你有一段刻骨铭心的初恋,那你就有可能被《追忆似水年华》里那张小小的借书卡感动;如果你正处于绝望的谷底,那你一定很想和杜弗瑞一起在肖申克的墙外为希望和自由大喊;如果你在和你的爱人斤斤计较,那你可能会容易理解卡洛和多明妮克的平等之争,会被多明妮克那深情的手势感动。因为这些我们会庆幸电影的存在,我们热爱电影。因为太爱《教父》,我放弃了看原著小说的机会,我不在乎她怎么来的,我只爱她现在的样子
“我将给他一个无法拒绝的理由……”恐怕世界上在没有哪个演员能够演绎《教父》中,马龙·白兰度的这句对白,“教父”在人们心中所留下难以泯灭的印象是男人、是男人的家庭和男人的爱。
“不要憎恨你的敌人,否则你将做出错误的判断。”
,“让朋友低估你的优点,让敌人高估你的缺点……”
不照顾家人的男人,根本算不上是个男人!”
史玉柱成功是必然的

最近关注史玉柱的故事,突然冒出一个想法,撇开对史玉柱的道德评判,单纯从商业角度看,史玉柱在财富上的成功是必然的。并且当下对史玉柱的道德评判显然有点过分,比如,奢侈品的效果和脑白金的效果差不多,为什么没那么多人批评奢侈品?(我猜一个理由是,传媒从机构到个人都被奢侈品“收买”了)。与其他网游比起来,《征途》也没有过分到哪儿去,其实对《征途》的批评很大比例来自业内,认为它破坏了行业惯例。

史玉柱必然成功在两点,一是他抓住了有大众消费基础的需求,深刻理解消费者的心理特性,并以最简单的方式满足他们的需求。《三联生活周刊》对史玉柱几个产品的一个总结特别到位:“脑黄金”、“脑白金”卖健康;“黄金搭档”卖聪明;《征途》卖权力与欲望。我个人的体验是,春节去买礼物,选择实在太少,差一点就偷懒买上七八盒脑白金。

营销做的是高端拉动,史玉柱同样擅长做渠道驱动,他的成功的第二个因素正是渠道。史玉柱认为网游的主要市场不在北京上海广州这些金字塔尖,而在农村。无论从脑白金,还是做征途,史玉柱都建立起直达县一级的渠道。史的渠道模式是,把市场销售的工资压得很低,但提成高得惊人。他的销售团队,是完全由赚钱所驱动的。

有个细节说明了史在商业上的智慧。我们在西方的营销案例中无数次看到区域性试销,但在中国中,这相当少见。脑白金最早是在江阴试销的,送了价值10万的产品,看到效果之后,再各地逐渐铺开。

在宝洁和可口可乐的中国实践中,我们也看到有直到最基层的渠道,那是它们国际渠道模式在中国的复制,我们经常能看到宝洁、可口可乐的各类前营销人员写的类似经历。不过它们似乎没有在中国搞试销。它们也没有像史玉柱那样根据中国的实际情形改造渠道,比如高提成,而仍然是职业发展加金钱收入的混合模式。
有天使呵护的男人注定要成功
向应聘者提出这样一个问题:“如果你驾驭着一匹烈马,应该怎么办?”
她朗声说道:“如果我驾驭着的是一匹烈马,我先勒紧缰绳,然后用鞭子狠狠地抽它!”
此一时,彼一时,经过了这一番风吹雨打,我悟到了,人世间最可宝贵的不是财富,而是无私无我的一份情义
史玉柱:也有人认为我不会搞管理,但我自认为我的管理还可以。
因为不管哪套管理,
目的无非有四:
第一,能让员工的积极性最大限度发挥;
第二,能让销售额最大化;
第三,能让成本最小;
第四,货款及公司是安全的。

事过境迁,如今想来,他有次与四通的老板段永基的一段对话十分经典:成功的经验总是因放大而扭曲,而失败的教训才更加真实。
“史玉柱这个营销团队相当于中国保健品领域的美国戴尔公司。我看好的就是史玉柱和他的这个团队,”这是2004年段永基聘请史玉柱担任四通控股CEO的理由。

   “我看好的不是一个产品”,段永基面对媒体质疑脑白金功能时说,“脑白金就其技术含量来说,什么都不是”,但“真的白金卖出白金价,不是本事;而把不是白金的东西卖出了白金价,那才是真功夫。”

   “把一个什么也不是的产品变成了钱”,这就是段看重史的地方。


   史玉柱对此的解释是,“这个东西有用没用,在于人们信不信。这就是诀窍。”

曾经有媒体吹捧说“史玉柱以一种行为,纪念了一个时代”。而史玉柱则异常低调地回答:“我只是个干活的人”,“并不是我有意把活儿干成这样,只是我只能干成这样。”
曾经有史玉柱当年的部下,见到央视《对话》节目的主持人对复出后的史玉柱以“天才”相称时,在“对人类博大而盲目的同情心和英雄崇拜的情结俯首无语”时,也感到了悲哀:他认为毁掉史玉柱的正是他的“营销天才”。


他自称从来不看科特勒们的营销书籍,却牢牢把握住了营销的终极方向———消费者
软硬勿相碰,版面读者多,价格四五扣,标题要醒目,篇篇有插图,党报应为主,宣字要不得,字形应统一,周围无广告,不能加黑框,形状不规则,热线不要加,启事要巧妙,结尾加报花,执行不走样,效果顶呱呱

“喜欢吃肉的,未必能当好厨子。”——这是当年盛大陈天桥对游戏爱好者和运营者关系的一句概括(史玉柱喜欢,能运营好游戏?)
你们不了解这个产业,现在保健品是白天睁着眼睛我们在赚钱,游戏这个产业是晚上我们睡觉的时候也可以赚到钱
几年前,史玉柱曾像这位姓乔的小伙子迷恋《征途》一样,对盛大的“传奇”上瘾,他平均1个月在《传奇》上的开支超过5万元,在一个拥有极品装备的账号上先后共投入了几十万元。“他每天要花四五个小时泡在网络游戏上。”盛大前副总朱威廉说,“史玉柱为了游戏装备或游戏里遇到的问题,经常直接打电话给陈天桥。陈天桥有时也会在公司高层会议上提起这些,陈天桥当时很得意,认为《传奇》的市场推广做得很成功,能吸引像史玉柱这样重量级的玩家。”

比起不玩游戏的丁磊和陈天桥,史玉柱更知道哪些东西让人欲罢不能。史玉柱进入网游行业前曾问他的开发团队:为什么一定要枯燥地打怪升级?开发人员回答,所有游戏都是这样。史玉柱于是按自己的意愿,让升级变得容易,让玩家对装备的依赖变得更强,这个程序修改的本质是在钱上:“卖点卡的方式回收资金,史玉柱觉得太慢了。玩家直接向他购买装备,这绕开了一些中间商,减少了不必要的成本,也大大加快了金钱回收的速度。”
销售额就是一切
金玉言说,“(史玉柱)上马一提金,下马一提银,确实很讲义气,对帮过他的人不会忘记”

http://forum.ubuntu.org.cn/about63843-0-asc-0.html



[url=http://www.ithaka.cn/Down/View.asp?id=11][/url]
分页: 302/339 第一页 上页 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 下页 最后页 [ 显示模式: 摘要 | 列表 ]