Эм помогите написать правельно инклуды для vmalloc и cin cout если таковые работают там%) Вот программа, написал все правина вроде а инклуды ненаю какие и де находятся*( стоит мандрива: Код (Text): #include <unistd.h> #include <stdio.h> #include ........... #include............. int count=0; struct pixel{ char color[1]; int x; int y; char attr[10]; }; pixel * arr; void add(char *val1, int val2,int val3, char *val4){ strcpy(arr[count].color, val1); arr[count].x= val2; arr[count].y= val3; strcpy(arr[count].attr, val4); count++; }; void serch(char *tip){ for(int i=0; i<count;i++){ if(!strcmp(arr[i].attr,tip)){ cout<<arr[i].x<<arr[i].y<<arr[i].color<<arr[i].attr<<"\n"; }; }; }; void sort(){ char tmp1[1]; int tmp2, tmp3; char tmp4[10]; for (int i=0; i<count-1; i++){ for (int j=0; j<count-1; j++){ if (arr[j].x>arr[j+1].x){ strcpy( tmp1,arr[j].color); tmp2=arr[j].x; tmp3=arr[j].y; strcpy(tmp4,arr[j].attr); strcpy(arr[j].color,arr[j+1].color); arr[j].x=arr[j+1].x; arr[j].y=arr[j+1].y; strcpy(arr[j].attr,arr[j+1].attr); strcpy(arr[j+1].color,tmp1); arr[j+1].x=tmp2; arr[j+1].y=tmp3; strcpy(arr[j+1].attr,tmp4); }; }; }; }; void show(){ for(int i=0; i<count;i++){ cout<<arr[i].x<<arr[i].y<<arr[i].color<<arr[i].attr<<"\n"; }; }; int main(int argc, char *argv[]) { arr=(pixel*)vmalloc(sizeof(pixel)); for (;;){ cout<<" Menu\n\n"; cout<<" 1.Add\n"; cout<<" 2.serch\n"; cout<<" 3.sortirovka\n"; cout<<" 4.Show\n"; cout<<" Enter choice - "; int c; cin>>c; cout<<"\n"; switch (c) { case 1: printf("vvedite cvet, x, y, atribut\n"); char a[1]; int b,c; char atribut[10]; cin>>a>>b>>c>>atribut; add(a,b,c,atribut); break; case 2: printf("vvedite atribut\n"); char atr[10]; cin>>atr; serch(atr); break; case 3: printf("sortirovka po koordinate x...\n"); sort(); break; case 4: show(); break; default:cout<<"There is no such an item in the menu\n\n"; system("PAUSE"); exit(0);}; }; system("PAUSE"); return 0; }
Зачем здесь применять vmalloc?! Вам нужно выравнивать страницы - valloc, если нет, то malloc or calloc. #include <stdlib.h> #include <malloc.h> //valloc
cin cout для них нужно #include <iostream> #include <linux/vmalloc.h> - а он у вас точно есть?! в самой программе ещё не хватает vfree
та знаю что нехватает Да библиотека есть выдает несколько ошибок вида usr/include/linux/vmalloc.h gfp_t does not been declered
vmalloc и vfree, распределяет и освобождает виртуальную память для нужд ядра, реализованы на основе get_free_pages, free_pages и других функций нижнего уровня для манипулирования страницами памяти. Так что предлогаю использовать функции для userspac-a.