- 1
- 2
- 3
- 4
- 5
string* newstr()
{
string* str;
return memset(str=malloc(sizeof(string)), 0, str?sizeof(string):0);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+92.9
string* newstr()
{
string* str;
return memset(str=malloc(sizeof(string)), 0, str?sizeof(string):0);
}
+138.7
char serverName[MAX_NAME];
char buttonName[MAX_NAME];
char serverIdStr[3];
serverIdStr[2] = '\0';
int currentSpot = 0;
// ...... получение serverName и currentSpot
serverIdStr[0] = '0' + ((currentSpot+1)/10);
serverIdStr[1] = '0' + ((currentSpot+1)%10);
strcpy(buttonName, buttonPrefix);
strcat(buttonName, serverIdStr);
Кто то не знает про существование sprintf...
+144.8
__inline BOOL
SearchOneDirectory(
IN LPSTR Directory,
IN LPSTR FileToFind,
IN LPSTR SourceFullName,
IN LPSTR SourceFilePart,
OUT PBOOL FoundInTree
)
{
//
// This was way too slow. Just say we didn't find the file.
//
*FoundInTree = FALSE;
return(TRUE);
}
Оптимизация Microsoft. Найдено в исходниках Windows, утекших в 2004.
+144.8
__inline BOOL
SearchOneDirectory(
IN LPSTR Directory,
IN LPSTR FileToFind,
IN LPSTR SourceFullName,
IN LPSTR SourceFilePart,
OUT PBOOL FoundInTree
)
{
//
// This was way too slow. Just say we didn't find the file.
//
*FoundInTree = FALSE;
return(TRUE);
}
Оптимизация by Microsoft. Шедевр из утёкших в 2004 году исходников Windows, заставило посмеятся, веселые у Микрософта заглушки
+144.9
char str[n]="Programmirivanie eto horoshiy predmet";
for(i=0; i<n; i++)
{
printf("%c", str[i]);
}
printf("\n");
Без комментариев ))
+134.7
si_node_append(&(*config), si_node_create_ex(param_name, param_value, param_flag)); // ...to the end
Смысл операции &(*var) непонятен.
Отдельного внимания заслуживает коментарий... мне удалось воткнуть :) оказывается, имелось в виду не "вперед, до самого конца", а "добавляем в конец списка", ага.
Правда, был круче комент в одном месте... "redirect of conclusion"...
В общем, когда вкурил что имелось в виду "перенаправление вывода", чуть не сдох со смеху :)
+93.9
if (cmd[1] == RESET) // если принятая команда RESET
{((void(*)(void))0)();} // что-то из черной магии
Сломай себе голову!!!!
друг прислал, незнаю где накопал, но выглядит круто!
+131.2
static void module3_exit(void){
cdev_del(mydev);
printk(KERN_INFO"Device"DEV_NAME"was deleted");
};
int mydev_open(struct inode *in,struct file *filp){
printk(KERN_INFO DEV_NAME "open");
struct dev_state *dev_stat;
dev_stat=&STATE[MINOR(in->i_rdev)];
if(dev_stat->dev_open)
{
printk("Kernel: device "DEV_NAME" is exist");
return -EBUSY;
};
dev_stat->dev_open++;
dev_stat->dev_read=0;
dev_stat->dev_write=0;
int num= NUM(in->i_rdev);
int type=TYPE(in->i_rdev);
return 0;
};
int mydev_ioctl(struct inode *in,struct file *filp,unsigned int ioctl,unsigned long param)
{
printk(KERN_INFO DEV_NAME "ioctl");
return 0;
};
ssize_t mydev_read(struct file *filp,char *buff,ssize_t len,loff_t pos)
{
printk(KERN_INFO DEV_NAME "read");
struct inode *in;
int count=len;
struct dev_state *devst;
printk("Kernel: try to read %d bytes \n",len);
in=filp->f_dentry->d_inode;
printk("Kernel: minor number is %d",MINOR(in->i_rdev));
devst=&STATE[MINOR(in->i_rdev)];
while(count--)
{
put_user(inb_p(PORT_START+10*MINOR(in->i_rdev)),buff);
buff++;
};
devst->dev_read+=len;
printk(KERN_INFO"Kernel: read "DEV_NAME" %d bytes",len);
return len;
};
ssize_t mydev_write(struct file *filp, const char *buff, ssize_t len,loff_t pos)
{
printk(KERN_INFO DEV_NAME "write");
struct inode *in;
int count=len;
unsigned char byte;
struct dev_state *devst;
printk(KERN_INFO"Kernel: try to write %d bytes\n",len);
in=filp->f_dentry->d_inode;
printk(KERN_INFO"Kernel: minor number %d\n",MINOR(in->i_rdev));
devst=&STATE[MINOR(in->i_rdev)];
while(count--)
{
get_user(byte, buff);
outb_p(byte, PORT_START+10*MINOR(in->i_rdev));
buff++;
};
devst->dev_write +=len;
printk(KERN_INFO"Kernel: "DEV_NAME " written %d bytes\n",len);
return len;
};
Модуль ядра
+128.8
#define MAX_FILE_LENGHT PAGE_SIZE
#define TYPE(dev) ( MINOR(dev) >> 4)
#define NUM(dev) ( MINOR(dev) & 0xf )
#define IRQ_NUM 1
#define DEV_NAME "keyboard"
#define MAX_DEV_COUNT 5
#define PORT_START 0xff30
int devno,err;
int mj,min;
struct cdev *mydev;
static char *devbuff;
struct dev_state{
int dev_open;
ssize_t dev_read;
ssize_t dev_write;
};
int mydev_ioctl(struct inode *in,struct file *filp,unsigned int ioctl,unsigned long param);
int mydev_open(struct inode *in,struct file* filp);
ssize_t mydev_read(struct file *filp,char *buff,ssize_t len,loff_t pos);
ssize_t mydev_write(struct file *filp, const char *buff, ssize_t len,loff_t pos);
loff_t mydev_llseek(struct file *filp,loff_t pos, int dist);
int mydev_close(struct inode *in , struct file *filp);
static struct dev_state STATE[MAX_DEV_COUNT+1];
struct resource *my_res;
struct file_operations fop_s={
.owner = THIS_MODULE,
.open = mydev_open,
.release = mydev_close,
.read = mydev_read,
.write = mydev_write,
.ioctl = mydev_ioctl,
.llseek = mydev_llseek,
};
static int module3_init(void){
mj=1;
min=1;
my_res->start=0xff30;
my_res->name="myres";
my_res->flags=IORESOURCE_IO | IORESOURCE_IO_FIXED;
my_res->parent=NULL;
my_res->sibling=NULL;
my_res->child=NULL;
struct resource *myres=request_region(200,300,"myreg");
devbuff=(char*)vmalloc(MAX_FILE_LENGHT);
memset(devbuff,0x20,sizeof(devbuff));
devno=MKDEV(mj,min);
mydev=cdev_alloc();
mydev->owner=THIS_MODULE;
cdev_init(mydev,&fop_s);
err=cdev_add(mydev,devno,1);
if(err){
printk(KERN_INFO"Invaid devno %d\n",devno);
return -EFAULT;
};
printk(KERN_INFO"Device"DEV_NAME"was created\n");
return 0;
};
+102.8
int parse_path(const char *path,char ***names,int *size)
{
int ch=0; ch='/';
*size=0;
char *q; q=path+1;
char *s=0;
while(1)
{
s=strchr(q,ch);
if(s!=NULL)
{
(*size)++;
if(*size==1)
{
(*names)=malloc(sizeof(char*)*(*size));
if(!(*names)) return -1;
}
else
{
(*names)=realloc(*names,(*size)*sizeof(char*));
if(!(*names)) return -1;
}
*(*names+(*size)-1)=malloc((s-q+1)*sizeof(char));
if(!(*(*names+(*size)-1))) return -1;
memset(*(*names+(*size)-1),0,(s-q+1)*sizeof(char));
strncpy(*(*names+(*size)-1),q,s-q);
q=s+1;
}
else
{
if(*q!='\0')
{
ch='\0';
s=strchr(q,ch);
(*size)++;
(*names)=realloc(*names,(*size)*sizeof(char*));
if(!(*names)) return -1;
*(*names+(*size)-1)=malloc((s-q+1)*sizeof(char));
if(!(*(*names+(*size)-1))) return -1;
memset(*(*names+(*size)-1),0,(s-q+1)*sizeof(char));
strncpy(*(*names+(*size)-1),q,s-q);
}
break;
}
}
return 0;
}
Парсим путь...Это ужасно!!!