当前位置: 技术问答>linux和unix
UNIX 文件操作 极限问题.
来源: 互联网 发布时间:2016-01-28
本文导语: /******************************************* 用于将文件中 XXXXXXX加密的手机号码部分解密出来。 要处理的文件记录格式: @@XXX ... XPPP ... Pn @:空格。n:'n'。P:为20位的其它内容。 处理后的文件记录格式:XXX ... Xn...
/*******************************************
用于将文件中 XXXXXXX加密的手机号码部分解密出来。
要处理的文件记录格式: @@XXX ... XPPP ... Pn @:空格。n:'n'。P:为20位的其它内容。
处理后的文件记录格式:XXX ... Xn 。
即将两个的前导空格和后20位的其它内容去除,并将号码解密出来,后写回本文件,且覆盖原记录。
执行环境 HP_UNIX .
file_name: store_Decipher
creat_date: 20070615
author:
有些信息需要读配制文件,小弟在此写死了,另见宏定义部分。
小弟遇到的问题是: 1、replace_PhoneNum() 中的 strncpy() 不能取指定的N位。
2、Memory fault(coredump),不知哪里漏的。
3、若把第一个fseek()注释去则运行则死循环(写回文件时)。
********************************************/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define begin_bit 59
#define KEY "DFIOD"
#define MY_SUCCEED 0
#define MY_FAIL 1
#define PHONE_LENGTH 11
/**********************************************************
function: replace_PhoneNum
description: 获取手机号码部分
Input: Record: 记录
Systemtype: 计费类型
sys_length:
Output: Record: 记录
Return: MY_SUCCEED: 成功
others:
***********************************************************/
int replace_PhoneNum( char * Record, long sys_length )
{
FILE * fp;
int begin_bit;
int len;
int i;
char fmtBill[ 128 ];
char record_Bill[ 512 ];
char filed_Name[ 32 ];
char Begin_bit[ 8 ];
char Len[ 8 ];
char key[ 8 ];
char record_tmp[ 768 ];
strcpy( key, KEY );
for( i = 0; i
用于将文件中 XXXXXXX加密的手机号码部分解密出来。
要处理的文件记录格式: @@XXX ... XPPP ... Pn @:空格。n:'n'。P:为20位的其它内容。
处理后的文件记录格式:XXX ... Xn 。
即将两个的前导空格和后20位的其它内容去除,并将号码解密出来,后写回本文件,且覆盖原记录。
执行环境 HP_UNIX .
file_name: store_Decipher
creat_date: 20070615
author:
有些信息需要读配制文件,小弟在此写死了,另见宏定义部分。
小弟遇到的问题是: 1、replace_PhoneNum() 中的 strncpy() 不能取指定的N位。
2、Memory fault(coredump),不知哪里漏的。
3、若把第一个fseek()注释去则运行则死循环(写回文件时)。
********************************************/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define begin_bit 59
#define KEY "DFIOD"
#define MY_SUCCEED 0
#define MY_FAIL 1
#define PHONE_LENGTH 11
/**********************************************************
function: replace_PhoneNum
description: 获取手机号码部分
Input: Record: 记录
Systemtype: 计费类型
sys_length:
Output: Record: 记录
Return: MY_SUCCEED: 成功
others:
***********************************************************/
int replace_PhoneNum( char * Record, long sys_length )
{
FILE * fp;
int begin_bit;
int len;
int i;
char fmtBill[ 128 ];
char record_Bill[ 512 ];
char filed_Name[ 32 ];
char Begin_bit[ 8 ];
char Len[ 8 ];
char key[ 8 ];
char record_tmp[ 768 ];
strcpy( key, KEY );
for( i = 0; i