- 1
- 2
- 3
- 4
filename_size = strlen(dest_dir) + strlen(basename) + 6;
ctx.mtl_file = (char *) malloc(filename_size);
ctx.obj_file = (char *) malloc(filename_size);
sprintf(ctx.mtl_file, "%s/%s.mtl", dest_dir, basename);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+118
filename_size = strlen(dest_dir) + strlen(basename) + 6;
ctx.mtl_file = (char *) malloc(filename_size);
ctx.obj_file = (char *) malloc(filename_size);
sprintf(ctx.mtl_file, "%s/%s.mtl", dest_dir, basename);
Долго соображали, почему вылезает сегфолт во free...
+149
if(self.el.actions.length==2){
Prototypes.MenuFunctions[self.el.actions[0].name].call(self);
}
Сегодня утром написал.
+141
static struct passwd *pd=getpwuid(st->st_uid);
if(pd==NULL){
fprintf(stderr, "no correspound user!\n");
}
char *perm=(char*)malloc(16);
if(perm==NULL){fprintf(stderr, "out of memory!\n");return -1;}
memset( perm,'\0',16);
if(st->st_mode & S_ISUID){perm[0]='s';} else perm[0]='-';
if(st->st_mode & S_IRUSR){perm[1]='r';} else perm[1]='-';
if(st->st_mode & S_IWUSR){perm[2]='w';} else perm[2]='-';
if(st->st_mode & S_IXUSR){perm[3]='x';} else perm[3]='-';
if(st->st_mode & S_IRGRP){perm[4]='r';} else perm[4]='-';
if(st->st_mode & S_IWGRP){perm[5]='w';} else perm[5]='-';
if(st->st_mode & S_IXGRP){perm[6]='x';} else perm[6]='-';
if(st->st_mode & S_IROTH){perm[7]='r';} else perm[7]='-';
if(st->st_mode & S_IWOTH){perm[8]='w';} else perm[8]='-';
if(st->st_mode & S_IXOTH){
if(st->st_mode & S_ISVTX){
perm[9]='t';
}
else perm[9]='x';
} else perm[9]='-';
if(st->st_mode & S_ISUID){
if(st->st_mode & S_IXUSR){
perm[4]='s';
} else perm[4]='S';
}
if(st->st_mode & S_ISGID){
if(st->st_mode & S_IXGRP){
perm[7]='s';
} else perm[7]='S';
}
if(st->st_mode & S_ISVTX){
if(st->st_mode & S_IXOTH){perm[9]='t';} else {
perm[9]='T';
}
}
if((st->st_mode & S_IFMT) == S_IFDIR) { perm[0]='d';}
if((st->st_mode & S_IFMT)==S_IFSOCK){ perm[0]='s';}
if((st->st_mode & S_IFMT) == S_IFCHR) { perm[0]='c';}
if((st->st_mode & S_IFMT)==S_IFCHR){perm[0]='c';} else if(st->st_mode & S_IFBLK){perm[0]='b';} else
if((st->st_mode & S_IFMT)== S_IFREG){ perm[0]='-';}
if((st->st_mode &S_IFMT)==S_IFBLK) { perm[0]='b';}
if((st->st_mode & S_IFMT)==S_IFIFO) { perm[0]='p';}
if((st->st_mode & S_IFMT)== S_IFLNK){ perm[0]='l';}
if(!S_ISDIR(st->st_mode)){
if(S_ISREG(st->st_mode)){
printf("<file type=\"regular file\" permissions=\"%s\" owner=\"%s\" group=\"%d\" size=\"%d\">%s</file>\n",perm,pd->pw_name,st->st_gid,st->st_size,dir);
return 0;
};
Права доступа
+142
void do_statfs(const struct mntent *fs)
{
struct statvfs vfs;
if (fs->mnt_fsname[0] != '/') /* skip nonreal filesystems */
return;
if (statvfs(fs->mnt_dir, & vfs) != 0) {
fprintf(stderr, "%s: %s: statfs failed: %s\n",
myname, fs->mnt_dir, strerror(errno));
errors++;
return;
}
if(fi!=1){
long used = 100 - (int)(((float)vfs.f_bfree/(float)vfs.f_blocks)*100);
printf("%12s", fs->mnt_fsname);//Filesystem
printf("%16ld",((vfs.f_blocks)>>10)*vfs.f_bsize);//1K-blocks
printf("%11ld", ((vfs.f_blocks - vfs.f_bfree)>>10)*vfs.f_bsize);//Used
printf("%11ld",(vfs.f_bavail>>10)*vfs.f_bsize); //Available
if(used>0 && used<=100){
printf("%8d%% ", 100 - (int)(((float)vfs.f_bfree/(float)vfs.f_blocks)*100));//Use%
} else { printf("%8s ","-");}
} else {
long used = 100 - (int)(((float)vfs.f_ffree/(float)vfs.f_files)*100);
printf("%8s", fs->mnt_fsname);//Filesystem
printf("%11ld",vfs.f_files);//Inodes
printf("%11ld", (vfs.f_files - vfs.f_ffree));//IUsed
printf("%11ld",vfs.f_ffree);//IFree
if(used>0 && used<=100){
printf("%8d%% ", used);//Use%
} else { printf("%8s ","-");}
}
printf("%s\n", fs->mnt_dir);//Mounted on
}
Свой df
+141
char **fpwd=(char**)malloc(160);
int lstat(const char *path, struct stat *buf);
int process_dir(const char *dir,struct stat *st1,ino_t cit);
char *cdir=".";
ino_t ci=0;
struct stat cstat;
int errors = 0;
char *myname;
int cnt=0;
int main(int argc,char **argv){
myname=argv[0];
cdir=(char*)malloc(512);
if(cdir==NULL){
perror("Not sufficient memory");
errors++;
return -1;
}
memset(cdir,'\0',512);
strcat(cdir,cdir);
strcat(cdir,".");
if(fpwd==NULL){
fprintf(stderr, "%s: out of memory: %s\n",
myname, strerror(errno));
errors++;
return 0;
}
for(int i=0;i<=160;i++){
*(fpwd+i)=(char*)malloc(1600);
if(*(fpwd+i)==NULL){perror("Not sufficient memory");
errors++;
return -1;
}
}
while(ci!=2){
if(lstat(".",&cstat)==-1){
fprintf(stderr, "%s: can't find file:%s %s\n",
myname, cdir, strerror(errno));
errors++;
return -1;
};
ci=cstat.st_ino;
if(process_dir("..",&cstat,ci)==-1){
fprintf(stderr, "%s: can't process dir:%s %s\n",
myname, cdir, strerror(errno));
errors++;
return -1;
};
int fd=open("..",O_RDONLY);
if(fd<0){
perror("open");
errors++;return -1;
}
if(fchdir(fd)==-1){
fprintf(stderr, "%s: can't chdir:%s\n",
myname, strerror(errno));
errors++;return -1;
};
strcat(cdir,"/..");
}
for(int i=cnt-1;i>=0;i--){
printf("/%s",fpwd[i]);
}
printf("\n");return 0;
}
int process_dir(const char *dir,struct stat *st1,ino_t cit/*,char **fpwd*/){
DIR *dp;
struct dirent *ent;
struct stat *dstat;
if ((dp = opendir(dir)) == NULL) {
fprintf(stderr, "%s: cannot open for reading: %s\n", dir, strerror(errno));errors++;return -1;
}
if(lstat(dir,dstat)==-1){
fprintf(stderr, "%s: can't find file:%s %s\n",
myname, cdir, strerror(errno));
errors++;
return -1;
}
while ((ent = readdir(dp)) != NULL){
if(ent->d_ino==cit && strcmp(ent->d_name,".")!=0 && strcmp(ent->d_name,"..")!=0){
strcat(fpwd[cnt++],ent->d_name);
if (closedir(dp) != 0) {
fprintf(stderr, "%s: closedir: %s\n", dir, strerror(errno));
errors++;
return 1;
}
return 0;
}
}
if (closedir(dp) != 0) {
fprintf(stderr, "%s: closedir: %s\n", dir, strerror(errno));
errors++;
return 1;
}
return 0;
}
+124
[2012-07-17 15:01:19] emulator-5554 disconnected! Cancelling 'android.app.NativeActivity activity launch'!
[2012-07-17 15:38:41] emulator-5554 disconnected! Cancelling 'android.app.NativeActivity activity launch'!
[2012-07-17 15:53:21] emulator-5554 disconnected! Cancelling 'android.app.NativeActivity activity launch'!
[2012-07-17 16:12:18] emulator-5554 disconnected! Cancelling 'android.app.NativeActivity activity launch'!
[2012-07-17 16:25:06] emulator-5554 disconnected! Cancelling 'android.app.NativeActivity activity launch'!
[2012-07-17 16:40:48] emulator-5554 disconnected! Cancelling 'android.app.NativeActivity activity launch'!
http://startandroid.ru/uroki/vse-uroki-spiskom/12-urok-3-sozdanie-avd-pervoe-prilozhenie-struktura-android-proekta.html
Если не получилось запустить и Eclipse вывел в консоль подобное сообщение: "emulator-5554 disconnected! Cancelling 'ru.startandroid.develop.OurFirstProject .MainAct activity launch'!" - то закройте эмулятор, и попробуйте снова. Если снова не получилось. перезапустите Eclipse. Если опять нет - ребутнитесь. Если и сейчас не работает, удалите AVD и создайте новый. В итоге должно заработать, пусть и не с первой попытки.
Главное - после запуска приложения (CTRL+F11) старайтесь совершать как можно меньше движений на компе. Я заметил четкую тенденцию - если во время запуска переключаться между различными окнами, то эмулятор запускается криво. А если просто посидеть и подождать минутку - то все ок. Ну и надо чтоб при этом не было включено какое-нить кодирование видео или прочие, нагружающие систему процедуры.
Если не получилось, попробуйте ещё раз...
Если снова не получилось, попробуйте ещё раз...
Если снова не получилось, попробуйте ещё раз...
Если снова не получилось, попробуйте ещё раз...
Если снова не получилось, попробуйте ещё раз...
Если снова не получилось, попробуйте ещё раз...
+64
/**
* Analyzes the supplied result to see if it was thrown
* because the access token is no longer valid. If that is
* the case, then we destroy the session.
*
* @param $result array A record storing the error message returned
* by a failed API call.
*/
protected function throwAPIException($result) {
$e = new FacebookApiException($result);
switch ($e->getType()) {
// OAuth 2.0 Draft 00 style
case 'OAuthException':
// OAuth 2.0 Draft 10 style
case 'invalid_token':
// REST server errors are just Exceptions
case 'Exception':
$message = $e->getMessage();
if ((strpos($message, 'Error validating access token') !== false) ||
(strpos($message, 'Invalid OAuth access token') !== false) ||
(strpos($message, 'An active access token must be used') !== false)
) {
$this->destroySession();
}
break;
}
throw $e;
}
Я даже не зняю, что хуже, определение типа исключения по тексту ошибки, или использование одного и того же исключения, для всех ситуаций.
ЗЫ: Это SDK от facebook.
+81
int i=0;
for (;i<5;
printf("%d",i);
i++;
);
+30
InputMapping* GetInputMapping(unsigned int index)
{
InputMapping* inputMapping = NULL;
switch (index)
{
// Movement
case 0:
return &m_LeftStickMapping[InputBindings::StickDirUp];
case 1:
return &m_LeftStickMapping[InputBindings::StickDirDown];
case 2:
return &m_LeftStickMapping[InputBindings::StickDirLeft];
case 3:
return &m_LeftStickMapping[InputBindings::StickDirRight];
// Actions
case 4:
return &m_ButtonMappings[Pad::ShoulderRight1];
case 5:
return &m_ButtonMappings[Pad::Button2];
case 6:
return &m_ButtonMappings[Pad::Button4];
case 7:
return &m_ButtonMappings[Pad::Button3];
case 8:
return &m_ButtonMappings[Pad::Button1];
// Weapons
case 9:
return &m_ButtonMappings[Pad::PadLeft];
case 10:
return &m_ButtonMappings[Pad::PadUp];
case 11:
return &m_ButtonMappings[Pad::PadRight];
case 12:
return &m_ButtonMappings[Pad::PadDown];
case 13: // weapon wheel
return &m_ButtonMappings[Pad::ShoulderRight2];
// Camera
case 14:
return &m_RightStickMapping[InputBindings::StickDirUp];
case 15:
return &m_RightStickMapping[InputBindings::StickDirDown];
case 16:
return &m_RightStickMapping[InputBindings::StickDirLeft];
case 17:
return &m_RightStickMapping[InputBindings::StickDirRight];
case 18:
return &m_ButtonMappings[Pad::ShoulderLeft1];
case 19:
return &m_ButtonMappings[Pad::ShoulderLeft2];
case 20:
return &m_ButtonMappings[Pad::StickRight];
// Menus
case 21:
return &m_ButtonMappings[Pad::Select];
case 22:
return &m_ButtonMappings[Pad::Start];
// First-person camera
case 23:
return &m_ButtonMappings[Pad::StickLeft];
default:
return NULL;
}
return NULL;
}
Массивы? Не, не слышал.
+20
void File::open(string file, bool readAccess, bool writeAccess, bool append)
{
Close();
(string&)Name=file;
const char* const modes[2][2][2]={{{null, "rb"}, {"wb", "w+b"}}, {{null, null}, {"ab", "a+b"}}};
if(modes[append][writeAccess][readAccess]==null) return InternalError("Создание файла с неверными параметрами!");
handle=fopen(Name.CStr(), modes[append][writeAccess][readAccess]);
if(handle==null) throw NotFoundException(string::Format("Файл <^> не найден!")(file));
}
Скорее всего, этот код вам покажется странным, поэтому я его выкладываю. Хотя я его говнокодом не считаю и он мне даже нравится.