长恨歌
----白居易
汉皇重色思倾国, 御宇多年求不得。
杨家有女初长成, 养在深闺人未识。
天生丽质难自弃, 一朝选在君王侧。
回眸一笑百媚生, 六宫粉黛无颜色。
春寒赐浴华清池, 温泉水滑洗凝脂。
侍儿扶起娇无力, 始是新承恩泽时。
云鬓花颜金步摇, 芙蓉帐暖度春宵。
春宵苦短日高起, 从此君王不早朝。
承欢侍宴无闲暇, 春从春游夜专夜。
后宫佳丽三千人, 三千宠爱在一身。
金屋妆成娇侍夜, 玉楼宴罢醉和春。
姊妹弟兄皆列土, 可怜光彩生门户。
遂令天下父母心, 不重生男重生女。
骊宫高处入青云, 仙乐风飘处处闻。
缓歌谩舞凝丝竹, 尽日君王看不足。
渔阳鼙鼓动地来, 惊破霓裳羽衣曲。
九重城阙烟尘生, 千乘万骑西南行。
翠华摇摇行复止, 西出都门百余里。
六军不发无奈何, 宛转蛾眉马前死。
花钿委地无人收, 翠翘金雀玉搔头。
君王掩面救不得, 回看血泪相和流。
黄埃散漫风萧索, 云栈萦纡登剑阁。
峨嵋山下少人行, 旌旗无光日色薄。
蜀江水碧蜀山青, 圣主朝朝暮暮情。
行宫见月伤心色, 夜雨闻铃肠断声。
天旋地转回龙驭, 到此踌躇不能去。
马嵬坡下泥土中, 不见玉颜空死处。
君臣相顾尽沾衣, 东望都门信马归。
归来池苑皆依旧, 太液芙蓉未央柳。
芙蓉如面柳如眉, 对此如何不泪垂。
春风桃李花开日, 秋雨梧桐叶落时。
西宫南内多秋草, 落叶满阶红不扫。
梨园弟子白发新, 椒房阿监青娥老。
夕殿萤飞思悄然, 孤灯挑尽未成眠。
迟迟钟鼓初长夜, 耿耿星河欲曙天。
鸳鸯瓦冷霜华重, 翡翠衾寒谁与共。
悠悠生死别经年, 魂魄不曾来入梦。
临邛道士鸿都客, 能以精诚致魂魄。
为感君王辗转思, 遂教方士殷勤觅。
排空驭气奔如电, 升天入地求之遍。
上穷碧落下黄泉, 两处茫茫皆不见。
忽闻海上有仙山, 山在虚无缥渺间。
楼阁玲珑五云起, 其中绰约多仙子。
中有一人字太真, 雪肤花貌参差是。
金阙西厢叩玉扃, 转教小玉报双成。
闻道汉家天子使, 九华帐里梦魂惊。
揽衣推枕起徘徊, 珠箔银屏迤逦开。
云鬓半偏新睡觉, 花冠不整下堂来。
风吹仙袂飘飘举, 犹似霓裳羽衣舞。
玉容寂寞泪阑干, 梨花一枝春带雨。
含情凝睇谢君王, 一别音容两渺茫。
昭阳殿里恩爱绝, 蓬莱宫中日月长。
回头下望人寰处, 不见长安见尘雾。
惟将旧物表深情, 钿合金钗寄将去。
钗留一股合一扇, 钗擘黄金合分钿。
但教心似金钿坚, 天上人间会相见。
临别殷勤重寄词, 词中有誓两心知。
七月七日长生殿, 夜半无人私语时。
在天愿作比翼鸟, 在地愿为连理枝。
天长地久有时尽, 此恨绵绵无绝期
----白居易
汉皇重色思倾国, 御宇多年求不得。
杨家有女初长成, 养在深闺人未识。
天生丽质难自弃, 一朝选在君王侧。
回眸一笑百媚生, 六宫粉黛无颜色。
春寒赐浴华清池, 温泉水滑洗凝脂。
侍儿扶起娇无力, 始是新承恩泽时。
云鬓花颜金步摇, 芙蓉帐暖度春宵。
春宵苦短日高起, 从此君王不早朝。
承欢侍宴无闲暇, 春从春游夜专夜。
后宫佳丽三千人, 三千宠爱在一身。
金屋妆成娇侍夜, 玉楼宴罢醉和春。
姊妹弟兄皆列土, 可怜光彩生门户。
遂令天下父母心, 不重生男重生女。
骊宫高处入青云, 仙乐风飘处处闻。
缓歌谩舞凝丝竹, 尽日君王看不足。
渔阳鼙鼓动地来, 惊破霓裳羽衣曲。
九重城阙烟尘生, 千乘万骑西南行。
翠华摇摇行复止, 西出都门百余里。
六军不发无奈何, 宛转蛾眉马前死。
花钿委地无人收, 翠翘金雀玉搔头。
君王掩面救不得, 回看血泪相和流。
黄埃散漫风萧索, 云栈萦纡登剑阁。
峨嵋山下少人行, 旌旗无光日色薄。
蜀江水碧蜀山青, 圣主朝朝暮暮情。
行宫见月伤心色, 夜雨闻铃肠断声。
天旋地转回龙驭, 到此踌躇不能去。
马嵬坡下泥土中, 不见玉颜空死处。
君臣相顾尽沾衣, 东望都门信马归。
归来池苑皆依旧, 太液芙蓉未央柳。
芙蓉如面柳如眉, 对此如何不泪垂。
春风桃李花开日, 秋雨梧桐叶落时。
西宫南内多秋草, 落叶满阶红不扫。
梨园弟子白发新, 椒房阿监青娥老。
夕殿萤飞思悄然, 孤灯挑尽未成眠。
迟迟钟鼓初长夜, 耿耿星河欲曙天。
鸳鸯瓦冷霜华重, 翡翠衾寒谁与共。
悠悠生死别经年, 魂魄不曾来入梦。
临邛道士鸿都客, 能以精诚致魂魄。
为感君王辗转思, 遂教方士殷勤觅。
排空驭气奔如电, 升天入地求之遍。
上穷碧落下黄泉, 两处茫茫皆不见。
忽闻海上有仙山, 山在虚无缥渺间。
楼阁玲珑五云起, 其中绰约多仙子。
中有一人字太真, 雪肤花貌参差是。
金阙西厢叩玉扃, 转教小玉报双成。
闻道汉家天子使, 九华帐里梦魂惊。
揽衣推枕起徘徊, 珠箔银屏迤逦开。
云鬓半偏新睡觉, 花冠不整下堂来。
风吹仙袂飘飘举, 犹似霓裳羽衣舞。
玉容寂寞泪阑干, 梨花一枝春带雨。
含情凝睇谢君王, 一别音容两渺茫。
昭阳殿里恩爱绝, 蓬莱宫中日月长。
回头下望人寰处, 不见长安见尘雾。
惟将旧物表深情, 钿合金钗寄将去。
钗留一股合一扇, 钗擘黄金合分钿。
但教心似金钿坚, 天上人间会相见。
临别殷勤重寄词, 词中有誓两心知。
七月七日长生殿, 夜半无人私语时。
在天愿作比翼鸟, 在地愿为连理枝。
天长地久有时尽, 此恨绵绵无绝期
写了一篇《我靠故我在》,于是,一个朋友留言表达了不同看法。我很高兴看到他的留言,我说这话的时候,难得的开心的笑了。如今,作为一个作奸犯科者,我很少看到认真和我讨论“靠”的人了。你是其中的一个。其实,你的一句话让我很动容,“不要笑我不明白,现实的现实以后,我们还能拥有些什么?”
是啊,我们还拥有什么?我想回答这个问题。
首先,我想和你探讨一下什么叫堕落。在我看来,堕落其实就是一种背叛。然而,这种背叛不是针对别人的,而是针对自己的。你背叛了你自己的原则,你背叛了自己的感觉,你背叛了你的灵魂,那么,我说你就堕落了。举例说,你是个向往灵魂自由的人,但是,你却因为其他的原因——比如你认为你得不到了——所以你去通过对权力的疯狂追逐来得到一种补偿,我可以说,你堕落了。你天生就是个善良的人,但是,你却因为满足自己的虚荣,而犯下伤害别人的罪,我认为,你堕落了。一个活生生的人,只有先背叛自己,才有可能背叛别人。
关于背叛别人,我想,还要分两种情况:一种是可背叛的,一种是不可背叛的。可背叛的你背叛了,还不能说是堕落。
我想举一个非常具体的例子来分析这个问题。假如一个已婚男子爱上了一个少女,然后,他试图离婚,然后与这少女结婚,这叫不叫堕落?在大部分看来,或许是的。然而,我却不这么认为。首先,假如一份感情是真实的,我们就应该认为这是美好的,并为此而祝福。而他以前的婚姻,只是说是一种过去,这段过去是美好的,并不能证明它能够继续美好下去。在这种情况下,维系一段只有责任而缺乏爱情的生活,这才是真正的堕落。或许有人说的,责任呢?责任不伟大吗?我说,我靠责任。一个人首先有能力对自己负责,才有可能对别人负责。看看现在的中国人吧——父母为子女牺牲,子女为父母牺牲,妻子为丈夫牺牲,丈夫为妻子牺牲,结果最后都牺牲了,没有一个真正快乐的人。我经常告诉别人说,假如这个社会每个人都学会爱自己、照顾好自己,那么这个社会要美好很多。
可惜,毕竟没有太多的人了解这一切。太多的人喜欢用群体意识来靠别人,也顺便把自己给靠了。什么叫群体意识?就是一堆的人在选择炒菜的方式,每个人都定了一个标准,结果争吵了半天,最后就达成了某一个标准。我们很容易看出,这是妥协的结果,而这样炒出来的菜很可能是最没有特色最乏味的一道菜。而这么做的目的是,保证大家不会饿死,同时不会吵架。而如今,我们都有足够的菜可以吃,我们不再担心饿死,我为什么一定要按照群体的标准来炒菜?我为什么不能尊重自己的口味来炒菜?我为什么不可以另起炉灶?
当然,现在看来,这么做是有很大的压力的。我曾经举过一个例子。法国大革命时,巴黎的革命党兴高采烈的去改造被压迫的人,某一天他们就去改造一个妓女。那妓女根本就不理睬他们,因为她根本就不认为自己是被压迫者。于是,革命者就去做妓女的母亲的工作。那位母亲大怒:“我女儿喜欢这个工作,你喜欢做爱,这有什么错?你们男人需要,她满足了这种需要,这有什么错?你们是用身体来工作的,她也是用身体工作的,只是工作的器官不一样而已,这有什么错?”我看到这里,哑然失笑。这是个极端的例子,但是很说明问题。在我看来,那个妓女并没有堕落,她甚至连自己身体的感觉都没有背叛。比较而言,我们社会上的很多的人反倒是堕落,他们违背着自己的感觉,他们远离了自己的灵魂,他们无意识 的在制造谎言,他们本质上是行尸走肉的。
我想,我们不必标榜自己有太多的思想,我看了一看,相当的多的人的思想比那个妓女的还要贫乏。我们忽略了应该重视的东西,却为一些恶心的、毫无意义的东西争论不休。
什么叫做人生?什么叫做有价值的人生?我估计没几个人可以正确的回答出来。我可以从另一个角度回答这个问题:没有令你感到遗憾的人生就是有价值的人生。作为一个活人,你的价值首先是自己的。你要做自己喜欢做的事情,爱自己想爱的人,你不能在你在垂死前突然发现自己的一生中居然有那么多的遗憾,你不能哭泣,你要微笑着说,是的,我经历了,我做了,我无所求了。
看看那些可怜的幻灭者吧。他们为什么感到了幻灭?因为他们把没有价值的东西当成了有价值的东西,而某一天他们发现那仅仅是谎言和垃圾的的时候,他们怎能不痛苦?
看看那些可怜的困惑者吧。他们为什么感到困惑?因为他们失去了自我,他们很少把自己当一个独立的个体来对待,他们的大脑中充斥着社会的契约、父母的教导、老师的经验之谈、朋友的影响,而自己呢?有谁问过你需要什么,你在想什么,你试图做什么?
这就是我要回答的另一个问题,这就是现实,这就是你们在现实中忽略的最致命的缺憾。我们缺少什么?是道德吗?是责任吗?是的,我们也缺乏,但是,我们最缺乏的是真正的尊重。说靠并不是不尊重。真正的尊重是漠视你的个人感觉,是用所谓的群体意识来强奸你、靠你,在把强奸了之后,再把你改造成一个强奸者。是的,在我看来,对于一个个体而言,这就是轮奸。还有比这更为残酷的事情吗?
我并不轻视丧失以及部分丧失了自我意识者。我鄙视的是意识强奸者。这样的强奸者往往道貌岸然,他会很慈祥的告诉你,我没有在靠你,我只是在按照社会的约定与你进行着肌肤摩擦,我这么做是爱你的,当然你也可以摩擦别人,你也可以改造别人。没错,假如我拒绝了这种改造,我就是堕落者。
我当然不妥协,别人强奸了我,我当然也有资格说靠。我认为我说的靠很文雅,我表达的是情绪,是对所谓的高雅的反抗。在上一篇文章里我已经解释得很清楚了。假如你们在我的“靠”中看到了人的下半身,或者看到了性交,那是你们的思想不洁。换句话说,当我看到“做爱”这个词的时候,我想到的是一双眼睛,昏暗的灯光,美丽的身体,亲吻,体温;当然,我相信有的人会联想到器官,联想到液体,甚至联想到体毛。同样的,做爱也是无罪的,我依旧是无辜的。菜刀也是无罪的,我用它切菜,而有的人用来杀人。
假如你们因为“靠”而感到受伤了,那是你们太脆弱。人生中的苦恼还有很多,假如连一个表示情绪的字眼都承受不了,你还有什么资格去面对漫漫的人生?同样,即使这个“靠”字是真的表示做爱,也没有什么大惊小怪的。假如别人真诚的邀请我“靠”,或许我不会去靠,但是我会感到高兴。这说明我还不是一个恶心的人、龌龊的人、毫无魅力的人,这说明还有人对我有了一种冲动,我还可以引起别人的激情,所以,我会很礼貌的说,谢谢。假如这个世界没有任何一个人愿意和你靠一靠,这才是最失败的。因此说,不是“靠”太尖锐,而是你们太脆弱,你们太盲目,你们太不敢正视自己的肉体和灵魂。
好了。最后总结几句:当我们生活这个不可理喻的世界上,当抹去世俗的灰尘,当我们在现实的现实中苦苦挣扎的时候,我们还拥有什么?我想,我们至少还拥有自己的灵魂,我们至少还拥有一双明亮的眼睛,我们至少还拥有爱人或是在某处等待你的爱人,我们至少还拥有响亮的说一声“我靠”的权力。
是啊,我们还拥有什么?我想回答这个问题。
首先,我想和你探讨一下什么叫堕落。在我看来,堕落其实就是一种背叛。然而,这种背叛不是针对别人的,而是针对自己的。你背叛了你自己的原则,你背叛了自己的感觉,你背叛了你的灵魂,那么,我说你就堕落了。举例说,你是个向往灵魂自由的人,但是,你却因为其他的原因——比如你认为你得不到了——所以你去通过对权力的疯狂追逐来得到一种补偿,我可以说,你堕落了。你天生就是个善良的人,但是,你却因为满足自己的虚荣,而犯下伤害别人的罪,我认为,你堕落了。一个活生生的人,只有先背叛自己,才有可能背叛别人。
关于背叛别人,我想,还要分两种情况:一种是可背叛的,一种是不可背叛的。可背叛的你背叛了,还不能说是堕落。
我想举一个非常具体的例子来分析这个问题。假如一个已婚男子爱上了一个少女,然后,他试图离婚,然后与这少女结婚,这叫不叫堕落?在大部分看来,或许是的。然而,我却不这么认为。首先,假如一份感情是真实的,我们就应该认为这是美好的,并为此而祝福。而他以前的婚姻,只是说是一种过去,这段过去是美好的,并不能证明它能够继续美好下去。在这种情况下,维系一段只有责任而缺乏爱情的生活,这才是真正的堕落。或许有人说的,责任呢?责任不伟大吗?我说,我靠责任。一个人首先有能力对自己负责,才有可能对别人负责。看看现在的中国人吧——父母为子女牺牲,子女为父母牺牲,妻子为丈夫牺牲,丈夫为妻子牺牲,结果最后都牺牲了,没有一个真正快乐的人。我经常告诉别人说,假如这个社会每个人都学会爱自己、照顾好自己,那么这个社会要美好很多。
可惜,毕竟没有太多的人了解这一切。太多的人喜欢用群体意识来靠别人,也顺便把自己给靠了。什么叫群体意识?就是一堆的人在选择炒菜的方式,每个人都定了一个标准,结果争吵了半天,最后就达成了某一个标准。我们很容易看出,这是妥协的结果,而这样炒出来的菜很可能是最没有特色最乏味的一道菜。而这么做的目的是,保证大家不会饿死,同时不会吵架。而如今,我们都有足够的菜可以吃,我们不再担心饿死,我为什么一定要按照群体的标准来炒菜?我为什么不能尊重自己的口味来炒菜?我为什么不可以另起炉灶?
当然,现在看来,这么做是有很大的压力的。我曾经举过一个例子。法国大革命时,巴黎的革命党兴高采烈的去改造被压迫的人,某一天他们就去改造一个妓女。那妓女根本就不理睬他们,因为她根本就不认为自己是被压迫者。于是,革命者就去做妓女的母亲的工作。那位母亲大怒:“我女儿喜欢这个工作,你喜欢做爱,这有什么错?你们男人需要,她满足了这种需要,这有什么错?你们是用身体来工作的,她也是用身体工作的,只是工作的器官不一样而已,这有什么错?”我看到这里,哑然失笑。这是个极端的例子,但是很说明问题。在我看来,那个妓女并没有堕落,她甚至连自己身体的感觉都没有背叛。比较而言,我们社会上的很多的人反倒是堕落,他们违背着自己的感觉,他们远离了自己的灵魂,他们无意识 的在制造谎言,他们本质上是行尸走肉的。
我想,我们不必标榜自己有太多的思想,我看了一看,相当的多的人的思想比那个妓女的还要贫乏。我们忽略了应该重视的东西,却为一些恶心的、毫无意义的东西争论不休。
什么叫做人生?什么叫做有价值的人生?我估计没几个人可以正确的回答出来。我可以从另一个角度回答这个问题:没有令你感到遗憾的人生就是有价值的人生。作为一个活人,你的价值首先是自己的。你要做自己喜欢做的事情,爱自己想爱的人,你不能在你在垂死前突然发现自己的一生中居然有那么多的遗憾,你不能哭泣,你要微笑着说,是的,我经历了,我做了,我无所求了。
看看那些可怜的幻灭者吧。他们为什么感到了幻灭?因为他们把没有价值的东西当成了有价值的东西,而某一天他们发现那仅仅是谎言和垃圾的的时候,他们怎能不痛苦?
看看那些可怜的困惑者吧。他们为什么感到困惑?因为他们失去了自我,他们很少把自己当一个独立的个体来对待,他们的大脑中充斥着社会的契约、父母的教导、老师的经验之谈、朋友的影响,而自己呢?有谁问过你需要什么,你在想什么,你试图做什么?
这就是我要回答的另一个问题,这就是现实,这就是你们在现实中忽略的最致命的缺憾。我们缺少什么?是道德吗?是责任吗?是的,我们也缺乏,但是,我们最缺乏的是真正的尊重。说靠并不是不尊重。真正的尊重是漠视你的个人感觉,是用所谓的群体意识来强奸你、靠你,在把强奸了之后,再把你改造成一个强奸者。是的,在我看来,对于一个个体而言,这就是轮奸。还有比这更为残酷的事情吗?
我并不轻视丧失以及部分丧失了自我意识者。我鄙视的是意识强奸者。这样的强奸者往往道貌岸然,他会很慈祥的告诉你,我没有在靠你,我只是在按照社会的约定与你进行着肌肤摩擦,我这么做是爱你的,当然你也可以摩擦别人,你也可以改造别人。没错,假如我拒绝了这种改造,我就是堕落者。
我当然不妥协,别人强奸了我,我当然也有资格说靠。我认为我说的靠很文雅,我表达的是情绪,是对所谓的高雅的反抗。在上一篇文章里我已经解释得很清楚了。假如你们在我的“靠”中看到了人的下半身,或者看到了性交,那是你们的思想不洁。换句话说,当我看到“做爱”这个词的时候,我想到的是一双眼睛,昏暗的灯光,美丽的身体,亲吻,体温;当然,我相信有的人会联想到器官,联想到液体,甚至联想到体毛。同样的,做爱也是无罪的,我依旧是无辜的。菜刀也是无罪的,我用它切菜,而有的人用来杀人。
假如你们因为“靠”而感到受伤了,那是你们太脆弱。人生中的苦恼还有很多,假如连一个表示情绪的字眼都承受不了,你还有什么资格去面对漫漫的人生?同样,即使这个“靠”字是真的表示做爱,也没有什么大惊小怪的。假如别人真诚的邀请我“靠”,或许我不会去靠,但是我会感到高兴。这说明我还不是一个恶心的人、龌龊的人、毫无魅力的人,这说明还有人对我有了一种冲动,我还可以引起别人的激情,所以,我会很礼貌的说,谢谢。假如这个世界没有任何一个人愿意和你靠一靠,这才是最失败的。因此说,不是“靠”太尖锐,而是你们太脆弱,你们太盲目,你们太不敢正视自己的肉体和灵魂。
好了。最后总结几句:当我们生活这个不可理喻的世界上,当抹去世俗的灰尘,当我们在现实的现实中苦苦挣扎的时候,我们还拥有什么?我想,我们至少还拥有自己的灵魂,我们至少还拥有一双明亮的眼睛,我们至少还拥有爱人或是在某处等待你的爱人,我们至少还拥有响亮的说一声“我靠”的权力。
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <math.h>
//#include "/usr/local/mysql/include/mysql/mysql.h"
#include "/usr/local/mysql/include/mysql.h"
using namespace std;
int main(void)
{
cout << "Content-type: text/html \n\n";
char mysqlServer[20] = "172.25.38.70";
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, "root", "","test3",3306,NULL,0))
{
printf("connect mysql error!\n");
return 0;
}
mysql_query(&myData,"set names utf8");
sprintf(query,"select * from test3");
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("mysql result: %d records found\n fields: %d \n", rowCount, colCount);
for(i = 0; i < rowCount; i++)
{
row = mysql_fetch_row( res );
for( j = 0; j < colCount; j++)
{
printf("[ %s ] ", row[j] );
printf(" \t");
}
printf("______ %d\n",i);
printf(" \n ");
}
}
}
正确的编译命令代码:
g++ c_mysql.cpp -L/usr/local/mysql/lib/ -lmysqlclient -lz -lm -o cout
注意:
如果/tmp/ccTGmMS21.o: In function `main':
/tmp/ccTGmMS21.o(.text+0x11): undefined reference to `mysql_init'
那么参数增加-L/usr/lib/mysql -lmysqlclient
如果
usr/lib/mysql/libmysqlclient.a(my_compress.o): In function `my_uncompress':
my_compress.o(.text+0xaa): undefined reference to `uncompress'
那么增加-lz参数
规范点: g++ c_mysql.cpp -L/usr/local/mysql/lib/ -lmysqlclient -lz -lm
mail# cd /usr/ports/net/ntop
mail# make install clean
===> Installing for ntop-3.3_1
===> ntop-3.3_1 depends on executable: dot - not found
===> Verifying install for dot in /usr/ports/graphics/graphviz
===> graphviz-2.14.1_1 depends on executable: wish8.4 - found
===> graphviz-2.14.1_1 depends on executable: gmake - found
===> graphviz-2.14.1_1 depends on executable: bison - found
===> graphviz-2.14.1_1 depends on file: /usr/local/bin/libtool - found
===> graphviz-2.14.1_1 depends on file: /usr/local/libdata/xorg/libraries - not found
===> Verifying install for /usr/local/libdata/xorg/libraries in /usr/ports/x11/xorg-libraries
/usr/X11R6 exists, but it is not a symlink. Installation cannot proceed.
This looks like an incompletely removed old version of X. In the current version, /usr/X11R6 must be a symlink if it exists at all.Please read /usr/ports/UPDATING (entry of 20070519) for the procedure to upgrade X.org related ports.*** Error code 1
Stop in /usr/ports/x11/xorg-libraries.
*** Error code 1
Stop in /usr/ports/graphics/graphviz.
*** Error code 1
Stop in /usr/ports/net/ntop.
*** Error code 1
Stop in /usr/ports/net/ntop.
mail# rm /usr/X11R6/
*********
from the error messages:
usr/X11R6 exists, but it is not a symlink. Installation cannot proceed.
This looks like an incompletely removed old version of X. In the current version, /usr/X11R6 must be a symlink if it exists at all.Please read /usr/ports/UPDATING (entry of 20070519) for the procedure to upgrade X.org related ports
SO WE SHOULD REMOVE THE sysmlink /usr/X11R6
>rm -r /usr/X11R6
mail# make install clean
===> Installing for ntop-3.3_1
===> ntop-3.3_1 depends on executable: dot - not found
===> Verifying install for dot in /usr/ports/graphics/graphviz
===> graphviz-2.14.1_1 depends on executable: wish8.4 - found
===> graphviz-2.14.1_1 depends on executable: gmake - found
===> graphviz-2.14.1_1 depends on executable: bison - found
===> graphviz-2.14.1_1 depends on file: /usr/local/bin/libtool - found
===> graphviz-2.14.1_1 depends on file: /usr/local/libdata/xorg/libraries - not found
===> Verifying install for /usr/local/libdata/xorg/libraries in /usr/ports/x11/xorg-libraries
/usr/X11R6 exists, but it is not a symlink. Installation cannot proceed.
This looks like an incompletely removed old version of X. In the current version, /usr/X11R6 must be a symlink if it exists at all.Please read /usr/ports/UPDATING (entry of 20070519) for the procedure to upgrade X.org related ports.*** Error code 1
Stop in /usr/ports/x11/xorg-libraries.
*** Error code 1
Stop in /usr/ports/graphics/graphviz.
*** Error code 1
Stop in /usr/ports/net/ntop.
*** Error code 1
Stop in /usr/ports/net/ntop.
mail# rm /usr/X11R6/
*********
from the error messages:
usr/X11R6 exists, but it is not a symlink. Installation cannot proceed.
This looks like an incompletely removed old version of X. In the current version, /usr/X11R6 must be a symlink if it exists at all.Please read /usr/ports/UPDATING (entry of 20070519) for the procedure to upgrade X.org related ports
SO WE SHOULD REMOVE THE sysmlink /usr/X11R6
>rm -r /usr/X11R6
前些年,城里人嘴里都流行一个词“乡巴佬”,后来就不怎么说了,可不知为什么,最近网络中又兴起了对“凤凰男”的讨论。
所谓“凤凰男”,就是指集全家之力于一身,发愤读书十余年,终于成为“山窝里飞出的金凤凰”,从而为一个家族蜕变带来希望的男性。他们进城市后,一般都能娶个城里老婆,过上城市生活,但由于原先的农村身份打下的烙印,使得他们与孔雀女(城市女孩)的爱情、婚姻和家庭,产生了种种问题。
从网络发帖的情况,声讨“凤凰男”的大多是“孔雀女”,这批人上网的时间充足,而且擅长于情感故事的编织,所以,几个强帖下去,“凤凰男”自然成了“过街老鼠,人人喊打”。她们认为,“凤凰男”既自卑又自傲,很难伺候,而且太顾父母,从而滋生出“歧视女性”和“大家族”两种观念,成为破坏婚姻的罪魁祸首。对此,有人出来反驳到,“你接触过多少凤凰男,难道孔雀女找孔雀男就没有婚姻破裂,家庭暴力” ?由此可见,这种城乡婚姻容易破裂的根本原因在于双方的生活背景不同,而绝不仅仅是一个人的责任。
众所周知,1958年后中国逐渐成型的城乡二元户籍制度,不但在经济上以“剪刀差”的形式汲取农村资源,而且在政治上造成了两种国民身份,这就为群族歧视提供了土壤。
其实群族歧视在中国由来已久,最有名的是上海人对外地人的歧视,这里既有经济因素,也有心理因素,所以有人说,上海人的自大是经济的突然膨胀导致自我认识上的迷失,上海人的歧视更是一、二百年来惨遭列强蹂躏后自我保护意识上的恶性延伸。有学者把这种心态归为“中原心态”,说白了,就是通过贬低并固化在某方面不如自己的族群,来维持自己既得的优势地位。
总之,从前些年流行的“乡巴佬”到今天流行的“凤凰男”,城里人对农村人的歧视由“外表”退到“内在”,这说明它的合理性在逐渐减弱。但歧视的土壤并没有完全清除,所以,当我们不经意间触碰到那根“歧视的神经”时,请别忘了,警惕“中原心态”!
所谓“凤凰男”,就是指集全家之力于一身,发愤读书十余年,终于成为“山窝里飞出的金凤凰”,从而为一个家族蜕变带来希望的男性。他们进城市后,一般都能娶个城里老婆,过上城市生活,但由于原先的农村身份打下的烙印,使得他们与孔雀女(城市女孩)的爱情、婚姻和家庭,产生了种种问题。
从网络发帖的情况,声讨“凤凰男”的大多是“孔雀女”,这批人上网的时间充足,而且擅长于情感故事的编织,所以,几个强帖下去,“凤凰男”自然成了“过街老鼠,人人喊打”。她们认为,“凤凰男”既自卑又自傲,很难伺候,而且太顾父母,从而滋生出“歧视女性”和“大家族”两种观念,成为破坏婚姻的罪魁祸首。对此,有人出来反驳到,“你接触过多少凤凰男,难道孔雀女找孔雀男就没有婚姻破裂,家庭暴力” ?由此可见,这种城乡婚姻容易破裂的根本原因在于双方的生活背景不同,而绝不仅仅是一个人的责任。
众所周知,1958年后中国逐渐成型的城乡二元户籍制度,不但在经济上以“剪刀差”的形式汲取农村资源,而且在政治上造成了两种国民身份,这就为群族歧视提供了土壤。
其实群族歧视在中国由来已久,最有名的是上海人对外地人的歧视,这里既有经济因素,也有心理因素,所以有人说,上海人的自大是经济的突然膨胀导致自我认识上的迷失,上海人的歧视更是一、二百年来惨遭列强蹂躏后自我保护意识上的恶性延伸。有学者把这种心态归为“中原心态”,说白了,就是通过贬低并固化在某方面不如自己的族群,来维持自己既得的优势地位。
总之,从前些年流行的“乡巴佬”到今天流行的“凤凰男”,城里人对农村人的歧视由“外表”退到“内在”,这说明它的合理性在逐渐减弱。但歧视的土壤并没有完全清除,所以,当我们不经意间触碰到那根“歧视的神经”时,请别忘了,警惕“中原心态”!
今天,同学刚买不久的笔记本电脑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
回车~
文件注册成功~
之前注册不成功是因为没有以管理员身份运行导致,再找个安装程序试一下果然行了。
“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;
}
#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码字符值返回。
所属类别: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就可以了。
注意是不是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
[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!
刚才写的全他妈的白写了!:)
引子:
问世间情为何物,指教人生死相许!天下哪有真情在,竹篮打水往来空!今朝有酒今朝醉,明日无酒在掂量!普天男儿皆薄情,可怜天下女儿心!珍重!珍重!
卖卖关子:
最近啊,自己觉得呢好像比较浮华,就是一个字:浪,让人觉得我不把大家当回事,也就不把自己当回事情。很想写点文章让大家觉得我还是蛮有水准的,特别对这这个纷扰的世界,常人说呀,如果说你这个人是真的爱一个人,你就得关心和付出更多来了解这个社会,让你的爱人让你觉得你很有安全感,这个男人特有的品性和女人的天然个性往往是背道而驰,问题一困扰就上了千年,在这个物化的社会尤甚!
But,世界很多人在说: 问世间情为何物,指教人生死相许,对这个时代来比较广泛的说根本就是句屁话!
让我想起了金庸的神雕侠侣的诗句:我兀立火中,任红焰火舌在我身周飞舞。生亦何欢,死亦何苦?问世间情是何物?直教生死相许?天南地北双飞客,老翅几回……感觉他们的诗句很有个性,很有震撼的感觉。对感情好像凌驾与生命之上。迫于好奇,我查了一下。这并非出自金庸的手笔,而是在金章宗泰和五年,元好问(1190—1257)金文学家写的文章,《雁丘词》,如下:
问世间情是何物,直教生死相许?
天南地北双飞客,老翅几回寒暑!
欢乐趣,离别苦,就中更有痴儿女。
君应有语:渺万里层云,
千山暮雪,只影向谁去!
横汾路,寂寞当年箫鼓,
荒烟依旧平楚。
招魂楚些何嗟及,山鬼暗啼风雨。
天也妒,未信与,莺儿燕子俱黄土。
千秋万古,为留待骚人,
狂歌痛饮,来访雁丘处。
全词行文并不复杂,而行文腾挪多变,用事实回答了什么是至情,寄人生哲理于淡悟之外。当时,我看到李莫愁《神雕侠侣》中的狂歌当哭,雌雄双雕的先后投水而死,更增加了本文的意境。 遥想双雁,“天南地北”冬天南下越冬而春天北归,“几回寒暑”中双宿双飞,相依为命,一往情深。既有欢乐的团聚,又有离别的辛酸,但没有任何力量可以把它们分开。而“网罗惊破双栖梦”后,爱侣已逝,安能独活!于是“脱网者”痛下决心追随于九泉之下,“自投地死”。 古与今,人与雁,更加感到鸿雁殉情的凄烈。但是死者不能复生,招魂无济于事,山鬼也枉自悲鸣,作者本要咏雁,却从“世间”落笔,以人拟雁,赋予雁情以超越自然的意义。
无论古代,还是在现代,都离不开一个情字,我们现代人却往往寄情与一些让人感觉浮华的东西,人性难道照旧了我们必学要这样吗?其实世间本无事,庸人自扰之。
但是现代的爱情难免也变了一些味道,昨天和哥们出去喝酒,带上了他女朋友,也带上了他女朋友的前男友,这样的喝酒我觉得很有意思,我发现我没有更上时代的变化,没有一颗豁达的心,我也难以想象她前男友要和我朋友的先女友结婚,我觉得太搞笑了吧,呵呵,但是我朋友没有向我想象的那么做,大家一块喝酒一块吃肉,毫不感觉,我真是佩服有这样的朋友,大家很诙谐的认同说这是一个鸿门宴,最后以女人哭了,男人走了收场,最后女人又笑了,说我朋友想什么都不给她说,哥几个好言相劝,终于达到一个完美结局,女人呢留下了句:她回家后要哥几个看好我朋友,破涕为笑,我惊呆了,笑hight了。
今天,更确切的说是昨天,这篇文章是昨天开写的,在学校27号楼准备骑车去国图,看到一个女孩子眼睛红红的,旁边已有一个女孩站着,我开自行车时候,听到那女的说:我又不能天天盯着他。。。
晚上,和一宿舍哥们说笑,听说他和前女友分了,原因很简单:那女孩子要留北京,他本人是委培要回贵州,于是没办法,分了。可能里面有水分,但毕竟是分了。。。
再问世间情为何物,指教人生死相许,连生死都可以超越,那世间和距离难道还有问题吗?现在的人们都是向上面的方式来解决感情,对感情玩世不恭,直到对感情麻木,在经历多次感情历练成为所谓的情场高手之后。再找一个有一定事业基础而又爱他的男人把自己这么一嫁,从世俗的角度来看对她来说这是一个不错的结局; 而对于你我这些曾经梦想和这个美女山盟海誓,缠绵一生而为之付出一切的痴心男人来说,面对的将是这一生用时间无法弥补的心灵和感情的双重伤害。
有人说兄弟,你这是什么意思啊。。。不就想说女人的不好嘛,何况好像跑题了,现实就是让我们感觉其实什么都无所谓。。。成也女人,败也女人,
我怎么写都感觉离题太远了,不写也罢。今天,我觉得我们应该写点怎样能摆脱这种外界的想法入手,观点可能有很多的不惊人意,其实人嘛,毕竟是感情动物,在这个纷繁的世界中,看到美好的好事物都挺爱慕的,然后就想占有,你呢,有两种选者,你是占有者要么你是旁观者,女人其实也是万事万物的一种,上帝在创照万物的时候也是用泥土来创照的人,我们难免都有花开花落,自然界中难免都有各种事物在不同的状态,有些东西你不得不认命,你就是那个枯萎的植物,而你旁边站着很多高大的灌木从,你又能怎样呢?你说跟天斗跟神斗,就是你砍掉了周围的灌木从,你就能很好的生活吗?何况你们本不是一个相同的事物,但你是植物,就像人类一样,你是人,但是你不是那个群,所以,你不得不服有些人说,这个社会好的女人都让那个狗日了,呵呵,你不觉得你很无聊吗?这个可以当作饭后无聊的调侃,但是,你千万别认为真是这样的,那你就错了,其实,人能当一条狗来做一些事情,我觉得这个人很不错了,对主人的忠诚对外敌的狂吠,尽管有些时候觉得狗很听话这点好像放大了它的缺点,但是这个在女人面前确实是一个杀手锏,难道你能说女人喜欢千依百顺的男人你有些不服气吗?就向植物喜欢阳光一样,难道它有错吗?你说这个法则不对,那你就改变这个自然界的法则吧,我觉得你不行,你可以改变自己,但你不能改变它的法则,这就是你来到这个世界唯一能做的,你变成狗啊,哈哈。。。我就喜欢被人说,哈哈。你觉得这个太残酷,来解决这个问题的问题,唯有老子的自然的面对,其实就是让你安分,你就是大自然的一分子,安于现状未必是件很丢脸的事情,而你的爱情观难道不会想到自己也就只能达到这个水平吗?他们漂亮有资本难道不就改得到有经济实力和美女的陪伴吗?我觉得很正常,抱着自己的美女,然那些愤恨人死一边去吧。
这样可能怂恿美女们都嫁个有钱的男人,呵呵,你得有资本呢,你说高校那些车里进出的妹妹们容易吗?哈哈,人家也不容易啊,所以,这个都是很自然的,你也可以啊,哈哈、
在这样一种观念下务必会造成社会的混乱,于是有人说这个问题其实最好是不能成为一条人人公用的法则,就想现在的房地产说:我们只为富人盖房子一样,一石激起千成浪,这个不也是商人的获利本质的体现嘛,这个也有错嘛?所以,人们往往在寻求本质的时候反而要将他们隐藏起来,这个问题是由于德,人们都要面子,尽管穷的叮当响,以前还越穷越光荣嘛,所以,这个反响大也是理所当然。
而,问世间情为何物难免夸大了很多感情的因素,其实杨过和小龙女就是一个特殊的例子,不容说好似违背了德的要求,师傅和徒弟的结合。而这个问世间情为何物难免有炒作之嫌。。。
你看看历史上那些感情很好的例子:刘郎织女,祝英台梁山伯,他们都是遗憾收场,最后隔着无数的天河和最后已死相争,他们的结局如此悲惨,如此的解决方法也不是现代人所提倡的,感情嘛,难免有个出现错误的时候,人生苦短,这是想的开的社会,这是个计较得失的社会,为此,大家对感情的不看重也是必然的,其实他们的生活好了,反而让大家觉得很幸福,不是嘛,真的感情是需要折磨的!
有一个老乡说:长得帅又不能当饭吃,这句话在这个物资还算丰富的社会中,能说名什么呢?感情是要物资基础的。物资和精神关系倒低还是应了马克思的话。。。。人生何其短,何必苦苦恋,我觉得未尝没有道理,就让那些问世间情为何物的名言当作我们的理想吧,没有得到的东西是最好的,永远让人心痒痒难耐。这岂不更好,去它妈的感情,去它妈的生死相许,我们有钱,我们就有一切,就能拥有这个世界。。。。我哭了,我向神祈祷,我得到笑的回答是:now!
我懂了,那就是:share!
刚才写的全他妈的白写了!:)
如有困难参考:
#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'
连接是这样做的:
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
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");
{
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)
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)是迈克的贴身保镖,他在三集《教父》中都露了面,这可是一个难得的荣耀。由于我对忠诚的迷恋,使我对艾尔的好感由来已久。第一集里他露面很晚,但他完成了迈克的大清洗计划中最重要的一击,是他结果了巴奇尼。年轻的他身手敏捷,枪法如神。到了第二集里,他已经是迈克不可缺少的得力助手,可惜才两年他就胖了不少,肚子明显大了一圈,想来不是导演的安排。最后一集里他派人帮助文森特除掉了乔伊· 萨沙,结尾又在罗马教堂亲自出手。让我高兴的是,他减肥很成功,简直比第一集里还要苗条。
《教父》里的故事太多了,我还有很多想说却说不完的话。其实每个人都会有一部最钟爱的电影,一部最贴近你的心的电影,只不过因为大家的经历和背景,才会有或大或小的差距。如果你有一段刻骨铭心的初恋,那你就有可能被《追忆似水年华》里那张小小的借书卡感动;如果你正处于绝望的谷底,那你一定很想和杜弗瑞一起在肖申克的墙外为希望和自由大喊;如果你在和你的爱人斤斤计较,那你可能会容易理解卡洛和多明妮克的平等之争,会被多明妮克那深情的手势感动。因为这些我们会庆幸电影的存在,我们热爱电影。因为太爱《教父》,我放弃了看原著小说的机会,我不在乎她怎么来的,我只爱她现在的样子
听说,斯坦利·库布里克(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)是迈克的贴身保镖,他在三集《教父》中都露了面,这可是一个难得的荣耀。由于我对忠诚的迷恋,使我对艾尔的好感由来已久。第一集里他露面很晚,但他完成了迈克的大清洗计划中最重要的一击,是他结果了巴奇尼。年轻的他身手敏捷,枪法如神。到了第二集里,他已经是迈克不可缺少的得力助手,可惜才两年他就胖了不少,肚子明显大了一圈,想来不是导演的安排。最后一集里他派人帮助文森特除掉了乔伊· 萨沙,结尾又在罗马教堂亲自出手。让我高兴的是,他减肥很成功,简直比第一集里还要苗条。
《教父》里的故事太多了,我还有很多想说却说不完的话。其实每个人都会有一部最钟爱的电影,一部最贴近你的心的电影,只不过因为大家的经历和背景,才会有或大或小的差距。如果你有一段刻骨铭心的初恋,那你就有可能被《追忆似水年华》里那张小小的借书卡感动;如果你正处于绝望的谷底,那你一定很想和杜弗瑞一起在肖申克的墙外为希望和自由大喊;如果你在和你的爱人斤斤计较,那你可能会容易理解卡洛和多明妮克的平等之争,会被多明妮克那深情的手势感动。因为这些我们会庆幸电影的存在,我们热爱电影。因为太爱《教父》,我放弃了看原著小说的机会,我不在乎她怎么来的,我只爱她现在的样子