English | Magyar
JS ki | CSS ki | Ékezetek ki | HiContrast
Lapozó:  (0 - 1424) 
<== | ==>
Ugrás a végére | Összes megjelenítése | Utolsó oldal
OpenOpera patches | Opera-SSL patches | Opera 12.15 source (Git repository) | Opera 12.15 source (Torrent) | Opera internal pages | Otter Browser Linux x64 - Qt5.15.2/QtWebKit5.602.1 (2024.04.27. 20:05)
OS for MC680x0 | OS for PPC | OS for Sparc64 | besztofbégéaefcé | CSÉNDZSLOG | WebToolz | DDG Shit Filter | Google Shit Filter | Progz | Fast CSS Box | Browser | OS | Agent | Statisztika | BBCode
Monospace font-family: Courier New | Browser default monospace
Email értesítő / Email notification ===> 
Keresés
Σ: 10 post

TCH  (statz) Főfasz
#1, Főfasz (10443)
1041 | #42a2 | ^ | Idézet | Mon, 10 Apr 2017 18:04:24 +02
94.21.*.* Linux x86 Opera Classic Hungary *.pool.digikabel.hu
@http://stackoverflow.com/questions/2069855/getting-machines-mac-address-good-solution:
#include <windows.h>
#include <iphlpapi.h>
#include <stdio.h>

int main() {         
    IP_ADAPTER_INFO *info = NULL, *pos;
    DWORD size = 0;

    GetAdaptersInfo(info, &size);

    info = (IP_ADAPTER_INFO *)malloc(size);

    GetAdaptersInfo(info, &size);

    for (pos=info; pos!=NULL; pos=pos->Next) {
        printf("\n%s\n\t", pos->Description);
        printf("%2.2x", pos->Address[0]);
        for (int i=1; i<pos->AddressLength; i++)
            printf(":%2.2x", pos->Address[i]);
    }

    free(info);
    return 0;
}
Ezt megint meg tudja valami agyalágyult winfosfan magyarázni, hogy mi a retekkel telibekúrt kurwa anyjáért kell a GetAdaptersInfo(info, &size); parancsot kétszer futtatni??? Pláne úgy, hogy a kettő között van egy allokálás is, ami felül fogja írni a picsába! És ez az elfogadott megoldás, tehát működik! Mi ez?!


kemi  (statz) Főfasz
#2, Főfasz (2970)
495 | #42a3 | ^ | Idézet | Mon, 10 Apr 2017 19:15:02 +02
188.36.*.* Linux x86 Mozilla Firefox Hungary *.dsl.pool.telekom.hu
Megjött a MegaDrive, úton van hozzá a Mega Everdrive. Lehet, hogy kicsit felújításra szorul majd, mert a bekapcsoló gombja kicsit kontaktos, RF-en nem ad ki hangot magából, csak berregést (bár ez lehet a TV baja), megoldható, ha rádugok a fejhallgató kimenetre egy pécés hangfalszettet, gyönyörűen szól. Akarok hozzá kompozit A/V kábelt csinálni, de nem találtam európai verzióhoz pinoutot, csak amerikai Genesishez. Szerintetek kompatibilis?


Ádám  (statz) Főfasz
#4, Főfasz (1815)
128 | #42a4 | ^ | Idézet | Mon, 10 Apr 2017 19:46:22 +02
5.204.*.* Linux x86 Google Chrome Hungary *.pool.telenor.hu
Na megyek backupolni vissza winfosra, kisbalta 500 gigás hádédé előkészítve, sör behűtve, szóval nem lehet nagy probléma.


Ádám  (statz) Főfasz
#4, Főfasz (1815)
600 | #42a5 | ^ | Idézet | Mon, 10 Apr 2017 20:13:04 +02
5.204.*.* Android Opera Mini Hungary *.pool.telenor.hu
Tudatosult bennem hogy van 80 giga lementendő adatom. De winfos alól nem merek írni, nehogy szarráfagyjon és tönkremenjenek a fontos cuccaim (és aztán nézem, hogy a másolt fájlokból minden ötödik EXE formátumú). De legyen meg minden inkább háromszor is, minthogy valamit elbasszak örökre, én inkább kivárom azt a bő órát amíg winfos bácsi dolgozik (azért nem linuxról csináltam mert csak read-only tudtam volna felcsatolni a cét (amire amúgy most jövök rá hogy másoláshoz elég az is)). Aztán majd meglátom, mi sül ki ebből. A jobb élet reményében bármit, csak szabaduljak meg ettől a fostól örökre...


TCH  (statz) Főfasz
#1, Főfasz (10443)
383 | #42a6 | ^ | Idézet | Mon, 10 Apr 2017 21:19:33 +02
94.21.*.* Linux x86 Opera Classic Hungary *.pool.digikabel.hu
@kemi:
RF-en nem ad ki hangot magából, csak berregést (bár ez lehet a TV baja)
Ez hangolási zűr. Rossz sávon vagy.
@kemi:
Szerintetek kompatibilis?
Igen, ugyanaz a kettő.
@Ádám:
A jobb élet reményében bármit, csak szabaduljak meg ettől a fostól örökre...
De anno nem hittél nekem. :P


Ádám  (statz) Főfasz
#4, Főfasz (1815)
248 | #42a7 | ^ | Idézet | Mon, 10 Apr 2017 21:42:34 +02
37.76.*.* Android Opera Mini Hungary *.nat.pool.telekom.hu
Most meg nem bútol be a winfos, mert valamit frissítgetett, közbe reseteltem, most meg INACCESSIBLE_BOOT_DEVICE szomorúfejecske. Kurwára nem érdekel mostmár, adatok lementve, ha minden jól megy, még ma vagy holnap felrakom a rencert ami nem trágya.


gelesztamás  (statz) Balfasz
#24, Balfasz (26)
1070 | #42a8 | ^ | Idézet | Mon, 10 Apr 2017 22:40:45 +02
80.99.*.* Ubuntu x86 Mozilla Firefox Hungary *.catv.broadband.hu


@TCH:
meg tudja valami agyalágyult winfosfan magyarázni, hogy mi a retekkel telibekúrt kurwa anyjáért kell a GetAdaptersInfo(info, &size); parancsot kétszer futtatni???


Nem vagyok winfosfan, de rengeteg C könyvtárban vannak hasonlóan használandó függvények, amiket kétszer kell hívni. Az első hívás azért kell, hogy tudd, mekkora lesz az adat amit visszakapsz a második hívással. Így tudsz pont akkora memóriát foglalni a malloc()-cal, és nem kell feleslegesen nagy memóriát foglalnod vagy túl kicsit, amibe nem fér be az adat.

Ez nagyon sok helyen célszerű tud lenni, mert így mindig tudod, hogy mekkora területeket kell foglalni. Például snprintf()-nél is jól jön:

char *nev = "Gipsz Jakab";
int kor = 43;

/* 1. hívás: csak a célsztring mérete érdekel */
int meret = snprintf(NULL, 0, "Név: %s Életkor: %d", nev, kor);

char szoveg[meret+1]; /* a +1 a lezáró nullkarakternek kell */

/* 2. hívás: tényleges kiírás a sztringbe */
snprintf(szoveg, meret+1, "Név: %s Életkor: %d", nev, kor);


TCH  (statz) Főfasz
#1, Főfasz (10443)
1816 | #42a9 | ^ | Idézet | Mon, 10 Apr 2017 23:23:48 +02
94.21.*.* Linux x86 Opera Classic Hungary *.pool.digikabel.hu
Tehát akkor általános C gyökérség és nem winfos specifikus, értem. Csak azért, mert semmi értelme, simán lehet tudni a méretet előre is. Ha char*, akkor strlen(), ha meg struct, akkor meg sizeof().

Ami meg a pre-alloc-ot illeti, ezek szerint ez a GetAdaptersInfo(info, &size); úgy működik, hogy ha az info == NULL, akkor csak a méretet adja vissza, ha meg nem, akkor meg oda tölti. Hát ezt meg lehet csinálni úgy is, hogy lenne egy GetAdaptersSize() függvény, meg lenne a GetAdaptersInfo(). De kettébontani is felesleges: mégis mi gátolta meg a GetAdaptersInfo() íróját abban, hogy belül foglaljon memóriát? Akkorát amekkorát kell?
// mittudomen hogy mukodik, ez most ilyen pseudo-example
void GetAdaptersInfo(IP_ADAPTER_INFO **info, DWORD *size)
{
	*size = GetAdaptersCount() * sizeof(struct _IP_ADAPTER_INFO);
	*info = malloc(size);
	PutAdapters(*info);
}
Azaz tudjuk hány darab ilyen struct van, lefoglalunk pont akkora memóriát és oda írjuk őket. Vissza meg egy (struct **) jön, így lehet megoldani a pointerlistákat.
Ehhez képest ez kb. most így nézhet ki belül:
void GetAdaptersInfo(IP_ADAPTER_INFO *info, DWORD *size)
{
	if (info == NULL)
	{
		*size = GetAdaptersCount() * sizeof(struct _IP_ADAPTER_INFO);
	}
	else
	{
		PutAdapters(info);
	}
}
Gondolom belátható, hogy ennek semmi értelme. Akkor is, ha a mikrofos bűne, akkor is, ha bad C practice.

De, hogy adjak másik példát, itt a tied, átírva egylépcsősre:
char *nev = "Gipsz Jakab";
int kor = 43;

int kl = 1;
int kor2 = kor / 10;
while (kor2 > 0)
{
	++kl;
	kor2 /= 10;
}

int meret = kl + strlen(nev) + 15;

char szoveg[meret+1];

snprintf(szoveg, meret+1, "Név: %s Életkor: %d", nev, kor);


kemi  (statz) Főfasz
#2, Főfasz (2970)
431 | #42aa | ^ | Idézet | Tue, 11 Apr 2017 07:40:27 +02
188.36.*.* Linux x86 Mozilla Firefox Hungary *.dsl.pool.telekom.hu
@TCH:
Ha char*, akkor strlen(), ha meg struct, akkor meg sizeof().
Vigyázz, az strlen az első \0-ig számolja a karaktereket, a sizeof azt adja vissza, ténylegesen mennyit foglal a memóriában. A vágólaptitkosítóval párszor megszívtam, mert base64-be kell konvertálni, hogy pastelhető legyen, és az RC-vel titkosított stringben lehet \0.


TCH  (statz) Főfasz
#1, Főfasz (10443)
1335 | #42ab | ^ | Idézet | Tue, 11 Apr 2017 09:24:39 +02
94.21.*.* Linux x86 Opera Classic Hungary *.pool.digikabel.hu
Tudom, hogy a strlen() az első \0-ig megy, de szerinted a sprintf()-ben a %s mit fog csinálni? Ugyanazt. A sizeof() meg nem adja vissza, hogy egy char * ténylegesen mennyit foglal le a memóriából, a sizeof() nem függvény, hanem operátor, amit ha egy char *-ra hívsz meg, akkor az architektúrától függően 2, 4 vagy 8 lesz amit visszaad (a pointer mérete). Ha olyan stringed van, amiben lehet \0, akkor annak a méretét neked kell tudnod és allokálgatnod. De a sprintf()-ben a %s az NUL terminated string, tehát jó rá a strlen().

Sz*rk: Ha egy pointer alatti terület méretére vagy kiváncsi, akkor non-standard függvények vannak csak rá:
 •  malloc_usable_size() a glibc-s rendszereken
 •  malloc_size() OSX-en
 •  _msize() winfoson, ami természetesen jó mikrofos módra bugos mint atom és még fundamentally broken is.


English | Magyar
JS ki | CSS ki | Ékezetek ki | HiContrast
Lapozó:  (0 - 1424) 
<== | ==>
Ugrás a végére | Összes megjelenítése | Utolsó oldal
OpenOpera patches | Opera-SSL patches | Opera 12.15 source (Git repository) | Opera 12.15 source (Torrent) | Opera internal pages | Otter Browser Linux x64 - Qt5.15.2/QtWebKit5.602.1 (2024.04.27. 20:05)
OS for MC680x0 | OS for PPC | OS for Sparc64 | besztofbégéaefcé | CSÉNDZSLOG | WebToolz | DDG Shit Filter | Google Shit Filter | Progz | Fast CSS Box | Browser | OS | Agent | Statisztika | BBCode
Monospace font-family: Courier New | Browser default monospace
Email értesítő / Email notification ===> 
Keresés

Név: (max 255 byte)

Email: (max 255 byte) Nem kötelező!

Üzenet: (max 65536 kar.) 65536-0=65536




crap_vkn v4.34.0 by TCH
Thx to saxus for the escaped string decoder function (PHP), the realIP function (PHP) & the SQL handle layer (PHP), to thookerov for the int_divide function (PHP), to Jeff Anderson for the getSelText function (JS), to Alex King for the insertAtCursor function (JS), Flood3r for the new CSS styles, Pety for the spamprotection idea and some design and comfort ideas, MaxMind for the IP2Country database, famfamfam for the flags of countries and an unknown PHP programmer for the removeAccents function.



Kecskebaszók ide!