本文GPL了!转载请著名出处!
#include <iostream>
#include <cstring>
#include <fstream>
#include <stdlib.h>
using namespace std;
#define MAX_WEIGHT 3000
#define MAX_LINE 1000
int tiaoxu(void)
{
char hang[1000][50];
fstream file;
int i = 0;
int maxline = 0;
file.open("/home/user/.ringchanger/mylist",ios::in);
if(!file)
{
cerr << "Can't open tiaoxu mylist" << endl;
return 1;
}
while(file.getline(hang[i],50))
{
i++;
}
maxline = i;
file.close();
file.open("/home/user/.ringchanger/mylist",ios::out);
if(!file)
{
cerr << "Can't open tiaoxu mylist" << endl;
return 2;
}
for(i=0;i<1000;i++)
hang[maxline+1][i]=hang[0][i];
for(i=1;i<maxline+2;i++)
{
file << hang[i] << endl;
}
file.close();
}
int change(void)
{
char hang[MAX_WEIGHT];
char line[MAX_LINE];
char dir[200];
char doc[200];
char ml[200]={"ls /home/user/.ringtones/"};
char ml1[]={" > /home/user/.ringchanger/dirname"};
char ml2[]={" > /home/user/.ringchanger/docname"};
char ml3[200]={"ls /home/user/.ringtones/"};
fstream file1, file2,file3,file4;
system(strcat(ml,ml1));
file1.open("/home/user/.ringchanger/dirname",ios::in);
if(!file1)
{
cerr << "Can't open dirname" << endl;
return 1;
}
file1.getline(dir,200);
file1.close();
system(strcat(strcat(ml3,dir),ml2));
file2.open("/home/user/.ringchanger/docname",ios::in);
if(!file2)
{
cerr << "Can't open docname" <<endl;
return 1;
}
file2.getline(doc,200);
file2.close();
file3.open("/home/user/.ringchanger/mylist",ios::in);
if(!file3)
{
cerr << "Can't open change mylist" << endl;
return 1;
}
file4.open("/home/user/.ringchanger/yidong",ios::out);
if(!file4)
{
cerr << "Can't open change yidong" << endl;
return 1;
}
file3.getline(hang,MAX_WEIGHT);
file4 << "cp -f /home/user/MyDocs/myrings/" ;
file4 << hang;
file4 << " /home/user/.ringtones/" << dir << "/" << doc;
file3.close();
file4.close();
file4.open("/home/user/.ringchanger/yidong",ios::in);
if(!file4)
{
cerr << "Can't open change yidong" << endl;
return 1;
}
file4.getline(line,MAX_LINE);
file4.close();
system(line);
tiaoxu();
}
int main(void)
{
system("if\n[ ! -d /home/user/MyDocs/myrings ]\nthen\nmkdir /home/user/MyDocs/myrings\nfi");
system("if\n[ ! -d /home/user/.ringchanger ]\nthen\nmkdir /home/user/.ringchanger\nfi");
system("ls /home/user/MyDocs/myrings/ > /home/user/.ringchanger/mylist");
fstream file;
int fileSize1 = 0;
for(;;)
{
int fileSize = 0;
system("tracker-sparql -q \"SELECT ?u { ?u a nmo:SMSMessage }\" | tail -n 2 | awk -F : \'{printf\"\%s\",$NF}\' > /home/user/.ringchanger/id");
file.open("/home/user/.ringchanger/id",ios::in);
if(!file)
{
cerr << "Can't open id" << endl;
return 1;
}
file >> fileSize;
if(fileSize != fileSize1)
{
sleep(3);
change();
}
fileSize1=fileSize;
file.close();
sleep(2);
}
}