私は次のプログラムによって、ユーザー空間を介しての/ proc/tx_infoに書いています:書き込み
char tx_buffer[100];
char tx_buffer[100];
static int proc_max_size = 100;
static unsigned long buffer_size =0;
int proc_read(char *buffer,char **buffer_location,off_t offset,int buffer_length,int *eof,void *data)
{
int ret;
if(offset>0)
{
ret=0;
} else {
memcpy(buffer,tx_buffer,buffer_size);
ret = buffer_size;
}
return ret;
}
int proc_write(struct file *filp, const char *buffer, unsigned long count, void *data)
{
if(count > proc_max_size)
count = proc_max_size;
if(copy_from_user(tx_buffer,buffer,count))
return -EFAULT;
// tx_buffer[count] = '\0';
buffer_size = count;
return count;
}
を次のように
int main()
{
char *prot;
char addr[14];
FILE *fp;
int i = 0;
prot = (char *)malloc(sizeof(char *));
//addr = (char *)malloc(sizeof(char *));
printf("\n enter the protocol for test\n");
scanf(" %s",prot);
printf("\n enter the addr::");
scanf(" %s",addr);
fp =fopen("/proc/tx_info","w");
if(fp == NULL)
{
printf("\n unable to write on /proc/tx_info \n");
}
fprintf(fp,"%s ",prot);
while(addr[i] != '\0')
{
fprintf(fp,"%c",addr[i]);
i++;
}
fclose(fp);
とのprocの読み取りと書き込みのプログラムを持っていますPROGに私のI/Pは、TCP 192.137.190.187 だったと私は猫の/ proc/tx_infoは、O/P以下の私を与えない:
のTCP 192.137.190.18
IPアドレスの最後の桁が印刷されない理由
ありがとうございました....非常に – karan421