user-0 提问: 【LinuxC】新手，有个地方写的感觉不大对，求高手帮忙看看

回复:
user: user-0
content: 引用 12 楼 kang2618 的回复:[quote=引用 11 楼 m0_38117705 的回复:] [quote=引用 10 楼 kang2618 的回复:] [quote=引用 9 楼 m0_38117705 的回复:] [quote=引用 8 楼 kang2618 的回复:] [quote=引用 7 楼 m0_38117705 的回复:] [quote=引用 3 楼 zhao4zhong1 的回复:] if (timBuf >tieBuf){ //改为 if (strcmp(timBuf ,tieBuf)>0){ 引用 3 楼 zhao4zhong1 的回复:if (timBuf >tieBuf){ //改为 if (strcmp(timBuf ,tieBuf)>0){  您好现在还有一种情况，if (strcmp(timBuf ,tieBuf)<0){ 无论怎么样都进不到if中，永远都是进else里，这是什么问题呀[/quote] 说明你的strcmp(timBuf ,tieBuf) 是等于0，或者大于0的[/quote] 对这里我还是明白的，我把上面大神那个代码大小符反了一下，结果我改1.date的值和改2.date的值，无论谁比谁大，永远都是进if，不会进到else;[/quote] 因为你比较的是“cat /mnt/hd1/mysql/1.date”跟"cat /mnt/hd1/mysql/2.date"的值，不是这两个文件里面的值[/quote] 奥您这么说我就明白了，那如果想比较这两个文件中的值该用什么函数呢；[/quote] 百度linux文件操作，需要先open文件，获得fd，然后通过read函数将数据读出，再进行比较。[/quote] 好这里我懂了。谢谢您

user: user-1
content: 引用 11 楼 m0_38117705 的回复:[quote=引用 10 楼 kang2618 的回复:] [quote=引用 9 楼 m0_38117705 的回复:] [quote=引用 8 楼 kang2618 的回复:] [quote=引用 7 楼 m0_38117705 的回复:] [quote=引用 3 楼 zhao4zhong1 的回复:] if (timBuf >tieBuf){ //改为 if (strcmp(timBuf ,tieBuf)>0){ 引用 3 楼 zhao4zhong1 的回复:if (timBuf >tieBuf){ //改为 if (strcmp(timBuf ,tieBuf)>0){  您好现在还有一种情况，if (strcmp(timBuf ,tieBuf)<0){ 无论怎么样都进不到if中，永远都是进else里，这是什么问题呀[/quote] 说明你的strcmp(timBuf ,tieBuf) 是等于0，或者大于0的[/quote] 对这里我还是明白的，我把上面大神那个代码大小符反了一下，结果我改1.date的值和改2.date的值，无论谁比谁大，永远都是进if，不会进到else;[/quote] 因为你比较的是“cat /mnt/hd1/mysql/1.date”跟"cat /mnt/hd1/mysql/2.date"的值，不是这两个文件里面的值[/quote] 奥您这么说我就明白了，那如果想比较这两个文件中的值该用什么函数呢；[/quote] 百度linux文件操作，需要先open文件，获得fd，然后通过read函数将数据读出，再进行比较。

user: user-0
content: 引用 10 楼 kang2618 的回复:[quote=引用 9 楼 m0_38117705 的回复:] [quote=引用 8 楼 kang2618 的回复:] [quote=引用 7 楼 m0_38117705 的回复:] [quote=引用 3 楼 zhao4zhong1 的回复:] if (timBuf >tieBuf){ //改为 if (strcmp(timBuf ,tieBuf)>0){ 引用 3 楼 zhao4zhong1 的回复:if (timBuf >tieBuf){ //改为 if (strcmp(timBuf ,tieBuf)>0){  您好现在还有一种情况，if (strcmp(timBuf ,tieBuf)<0){ 无论怎么样都进不到if中，永远都是进else里，这是什么问题呀[/quote] 说明你的strcmp(timBuf ,tieBuf) 是等于0，或者大于0的[/quote] 对这里我还是明白的，我把上面大神那个代码大小符反了一下，结果我改1.date的值和改2.date的值，无论谁比谁大，永远都是进if，不会进到else;[/quote] 因为你比较的是“cat /mnt/hd1/mysql/1.date”跟"cat /mnt/hd1/mysql/2.date"的值，不是这两个文件里面的值[/quote] 奥您这么说我就明白了，那如果想比较这两个文件中的值该用什么函数呢；

user: user-1
content: 引用 9 楼 m0_38117705 的回复:[quote=引用 8 楼 kang2618 的回复:] [quote=引用 7 楼 m0_38117705 的回复:] [quote=引用 3 楼 zhao4zhong1 的回复:] if (timBuf >tieBuf){ //改为 if (strcmp(timBuf ,tieBuf)>0){ 引用 3 楼 zhao4zhong1 的回复:if (timBuf >tieBuf){ //改为 if (strcmp(timBuf ,tieBuf)>0){  您好现在还有一种情况，if (strcmp(timBuf ,tieBuf)<0){ 无论怎么样都进不到if中，永远都是进else里，这是什么问题呀[/quote] 说明你的strcmp(timBuf ,tieBuf) 是等于0，或者大于0的[/quote] 对这里我还是明白的，我把上面大神那个代码大小符反了一下，结果我改1.date的值和改2.date的值，无论谁比谁大，永远都是进if，不会进到else;[/quote] 因为你比较的是“cat /mnt/hd1/mysql/1.date”跟"cat /mnt/hd1/mysql/2.date"的值，不是这两个文件里面的值

user: user-0
content: 引用 8 楼 kang2618 的回复:[quote=引用 7 楼 m0_38117705 的回复:] [quote=引用 3 楼 zhao4zhong1 的回复:] if (timBuf >tieBuf){ //改为 if (strcmp(timBuf ,tieBuf)>0){ 引用 3 楼 zhao4zhong1 的回复:if (timBuf >tieBuf){ //改为 if (strcmp(timBuf ,tieBuf)>0){  您好现在还有一种情况，if (strcmp(timBuf ,tieBuf)<0){ 无论怎么样都进不到if中，永远都是进else里，这是什么问题呀[/quote] 说明你的strcmp(timBuf ,tieBuf) 是等于0，或者大于0的[/quote] 对这里我还是明白的，我把上面大神那个代码大小符反了一下，结果我改1.date的值和改2.date的值，无论谁比谁大，永远都是进if，不会进到else;

user: user-1
content: 引用 7 楼 m0_38117705 的回复:[quote=引用 3 楼 zhao4zhong1 的回复:] if (timBuf >tieBuf){ //改为 if (strcmp(timBuf ,tieBuf)>0){ 引用 3 楼 zhao4zhong1 的回复:if (timBuf >tieBuf){ //改为 if (strcmp(timBuf ,tieBuf)>0){  您好现在还有一种情况，if (strcmp(timBuf ,tieBuf)<0){ 无论怎么样都进不到if中，永远都是进else里，这是什么问题呀[/quote] 说明你的strcmp(timBuf ,tieBuf) 是等于0，或者大于0的

user: user-0
content: 引用 3 楼 zhao4zhong1 的回复:if (timBuf >tieBuf){ //改为 if (strcmp(timBuf ,tieBuf)>0){ 引用 3 楼 zhao4zhong1 的回复:if (timBuf >tieBuf){ //改为 if (strcmp(timBuf ,tieBuf)>0){  您好现在还有一种情况，if (strcmp(timBuf ,tieBuf)<0){ 无论怎么样都进不到if中，永远都是进else里，这是什么问题呀

user: user-0
content: 引用 3 楼 zhao4zhong1 的回复:if (timBuf >tieBuf){ //改为 if (strcmp(timBuf ,tieBuf)>0){ 我试了试，是没问题的，万分感谢！

user: user-2
content: 引用 4 楼 m0_38117705 的回复:[quote=引用 1 楼 sdghchj 的回复:] 没有任何格式化参数，用sprintf画蛇添足。 比较字符串内容的大小是用strcmp(str1,str2)函数。 而你这样直接比较的是地址。 现在会用的函数不大多，sprintf还是从同事那学来的= =[/quote]  strcpy(timBuf,"cat /mnt/hd1/mysql/1.date");  //直接拷贝。

user: user-0
content: 引用 1 楼 sdghchj 的回复:没有任何格式化参数，用sprintf画蛇添足。 比较字符串内容的大小是用strcmp(str1,str2)函数。 而你这样直接比较的是地址。 现在会用的函数不大多，sprintf还是从同事那学来的= =

user: user-3
content: if (timBuf >tieBuf){ //改为 if (strcmp(timBuf ,tieBuf)>0){

user: user-0
content: 引用 1 楼 sdghchj 的回复:没有任何格式化参数，用sprintf画蛇添足。 比较字符串内容的大小是用strcmp(str1,str2)函数。 而你这样直接比较的是地址。  我现在是可以确定1.date与2.date中的值没有问题，现在就是找不好用什么命令去调那两个值来比较。

user: user-2
content: 没有任何格式化参数，用sprintf画蛇添足。 比较字符串内容的大小是用strcmp(str1,str2)函数。 而你这样直接比较的是地址。