#include < sys/time.h > #include < sys/resource.h > #include < errno.h > #include < stdio.h > int main(){ int pri; errno = 0; pri = getpriority(PRIO_PROCESS, 0); if (errno != 0){ perror("getpriority"); return 1; } printf("%d\n", pri); return 0; }
Category: uncategorized
getpid/getppid
自分または親のプロセスID
#include < sys/types.h > #include < unistd.h > #includeint main() { pid_t pid, ppid; pid = getpid(); ppid = getppid(); printf("pid = %d, ppid = %d\n", (int)pid, (int)ppid); return 0; }
読出しサンプル
#include < stdio.h > #include < math.h > #include < fcnt1.h > #include < math.h > #include < sys/types.h > #include < unistd.h > #include < sys/mman.h > typedef struct { char str[512]; long lval; double dval; }SSS; #define NUMBER (10000) void main() { int fd; long psize,size; SSS *ptr; long i; if((fd=open("MapFile",O_RDWR))== -1){ perror("open"); exit(-1); } #ifdef BSD psize=getpagesize(); #else psize=sysconf(_SC_PAGE_SIZE); #endif size=(NUMBER*sizeof(SSS)/psize+1)*psize; /* map */ ptr=(SSS *)mmap(0,size,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0); /* test */ while(1){ for(i=0;i
可変引数の用途
#include < stdio.h > #include < varargs.h > int debug_print(va_alist) va_dcl { va_list args; char *fmt; char buf[256]; va_start(args); fmt=va_arg(args,char *); vsprintf(buf,fmt,args); va_end(args); fprintf(stderr,"DEBUG[ %s \n",buf); return(0); }
グローバルデータを使う方法
unsigned char Map[ 100 ][ 100 ]; void main() { InitMap(); LoadMapData(); SaveMapData(); } int InitMap() { int x, y; for(y=0;y<100;y++){ for(x=0;x<100;x++){ Map[x][y]=(unsigned char)0; } } return(0); } int LoadMapData() { int x,y; for(y=0;y<100;y++){ for(x=0;x<100;x++){ Map[x][y]=getc(); if(feof(stdin)){ return(-1); } } } return(0); } int SaveMapData() { int x,y; for(y=0;y<100;y++){ for(x=0;x<100;x++){ putc(Map[x][y]); } } return(0); }
関数の実装
#include < stdio.h > short GetShort(); void main() { short num; while(1){ /* short standard input, insert to num */ num=GetShort(); /* display num binary */ ShortBinPrint(num); } } short GetShort() { char buf[80]; short num; fgets(buf, sizeof(buf)-1,stdin); num=(short)atoi(buf); return(0); } int ShortBinPrint(num) short num; { char buf[20]; ShortToBinString(num,buf); printf("%\n",buf); return(0); } int ShortToBingString(num,buf) short num; char *ptr; ptr=buf; for(i=15;i>=0;i--){ *ptr=(char)(((num>>i)&0x01)+'0'); ptr++; } *ptr='\0'; return 0; }
反復子を利用してベクトルにアクセス
#include < iostream > #includeusing namespace std; int main() { vector v; int i; for(i=0; i<10; i++) v.push_back(i); for(i=0; i<10; i++) cout << v[i] << " "; cout << endl; vector ::iterator p = v.begin(); while(p != v.end()){ cout << *p << " "; p++; } return 0; }
thisポインタ
メンバ関数から同じクラスのほかのメンバを参照する際には、直接参照することができる。
#include < iostream > #include < cstring > using namespace std; class inventory { char item[20]; double cost; int on_hand; public: inventory(char *i, double c, int o) { strcpy(item, i); cost = c; on_hand = o; } void show(); }; void inventory::show() { cout << item; cout << ": $" << cost; cout << " stock: " << on_hand << "\n"; } int main() { inventory ob("rench", 4.95, 4); ob.show(); return 0; }
オブジェクトの代入
型が同じであれば、1つのオブジェクトをもう1つのオブジェクトに代入することができます。
#includeusing namespace std; class myclass { int a, b; public: void set(int i, int j){ a = i; b = j; } void show() { cout << a << ' ' << b << '\n'; } }; int main() { myclass o1, o2; o1.set(10, 4); o2 = o1; o1.show(); o2.show(); return 0; }