对proc文件的写入操作
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void main()
{
FILE *file;
char tmp[2048];
int i=0;
file = fopen("/proc/proc_to_firewall/ip_filter", "w");
if(!file)
{
for(i=0; i<10; i++)
{
fprintf(file, "1:192.168.1.%d", i);
}
fclose(file);
i=0;
}
else
printf("XXXXXXXXXXXXXXXXXX\n");
if((file = popen("cat /proc/proc_to_firewall/ip_filter", "r")) != NULL)
{
i++;
while(fgets(tmp, sizeof(tmp), file) != NULL)
{
printf("line_%d:%s",i,tmp);
}
pclose(file);
}
}
proc文件内核态的读写代码已经写完了,现在写用户态的,读取proc文件ip_filter已经实现了,但是写入数据难道只能用系统调用system(“echo 123 > /proc/proc_to_firewall/ip_filter")这种方法吗,上面像普通文件那样打开并写入,直接就失败了,打印XXXXXXX,文件等于是打开失败了,有啥方法吗?