- Az Apple megszerezné a klubvilágbajnokság közvetítési jogait
- Milyen belső merevlemezt vegyek?
- Alapértelmezett konfiguráción sok Core CPU-nak lehet stabilitási gondja
- Fejhallgató erősítő és DAC topik
- OLED TV topic
- Amlogic S905, S912 processzoros készülékek
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Microsoft Surface
- Bambu Lab X1/X1C, P1P-P1S és A1 mini tulajok
- Épített vízhűtés (nem kompakt) topic
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- bb0t: Gyilkos szénhidrátok, avagy hogyan fogytam önsanyargatás nélkül 16 kg-ot
- GoodSpeed: ASUS ROG STRIX B650E-F GAMING WIFI - Memory Context Restory (MCR)
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- sziku69: Fűzzük össze a szavakat :)
Hirdetés
-
Free Play Days 2024 - 18. hét: Headbangers: Rythm Royale
gp Extraként a Star Wars Jedi: Survort is kipróbálhatjuk 5 óra erejéig.
-
Letartóztatták a bitcoin-Jézust
it Amerikai adókerülés vádjával, Spanyolországban tartóztatták le a bitcoin-Jézusként ismert Roger Vert.
-
Képeken az egyik kameráját elvesztő Sony Xperia 10 VI
ma Részletes anyag került fel az internetre a Sony idei középkategóriás telefonjáról, három helyett két hátlapi kamera várható.
Új hozzászólás Aktív témák
-
ReJim
őstag
sziasztok c-ben hogyan tudok udp-n adatot küldeni?
(server linuxon, kliens winen. gcc fordítók, winen devc++ és mingw)ez a kód jó lenne nekem, de winre nem találok headert:
/*********************** udpclient.c ***********************/\
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h> /* memset() */
#include <sys/time.h> /* select() */
#define REMOTE_SERVER_PORT 1500
#define MAX_MSG 100
int main(int argc, char *argv[]) {
int sd, rc, i;
struct sockaddr_in cliAddr, remoteServAddr;
struct hostent *h;
/* check command line args */
if(argc<3) {
printf("usage : %s <server> <data1> ... <dataN> \n", argv[0]);
exit(1);
}
/* get server IP address (no check if input is IP address or DNS name */
h = gethostbyname(argv[1]);
if(h==NULL) {
printf("%s: unknown host '%s' \n", argv[0], argv[1]);
exit(1);
}
printf("%s: sending data to '%s' (IP : %s) \n", argv[0], h->h_name,
inet_ntoa(*(struct in_addr *)h->h_addr_list[0]));
remoteServAddr.sin_family = h->h_addrtype;
memcpy((char *) &remoteServAddr.sin_addr.s_addr,
h->h_addr_list[0], h->h_length);
remoteServAddr.sin_port = htons(REMOTE_SERVER_PORT);
/* socket creation */
sd = socket(AF_INET,SOCK_DGRAM,0);
if(sd<0) {
printf("%s: cannot open socket \n",argv[0]);
exit(1);
}
/* bind any port */
cliAddr.sin_family = AF_INET;
cliAddr.sin_addr.s_addr = htonl(INADDR_ANY);
cliAddr.sin_port = htons(0);
rc = bind(sd, (struct sockaddr *) &cliAddr, sizeof(cliAddr));
if(rc<0) {
printf("%s: cannot bind port\n", argv[0]);
exit(1);
}
/* send data */
for(i=2;i<argc;i++) {
rc = sendto(sd, argv[i], strlen(argv[i])+1, 0,
(struct sockaddr *) &remoteServAddr,
sizeof(remoteServAddr));
if(rc<0) {
printf("%s: cannot send data %d \n",argv[0],i-1);
close(sd);
exit(1);
}
}
return 1;
}valakinek valami ötlete?
</end.?>
-
bodisjani
csendes tag
Sziasztok!
Most kezdek C-vel bajlódni és az első lépéseknél el is akadtam: A fordító Dev-C++, az oprendszer Vista, a probléma pedig az, hogy a prgram lefordítódik, le is fut, csak azonnal be is záródik az ablak. Az egészből csak egy villanást látok. ???
Előre is köszi!!
-
skylaner
senior tag
Megtudnátok mondani, hogy az alábbi kód, hogyan/miért működik pointerek nélkül?
#include <stdio.h>
#define csere(a, b) { int c; c=a; a=b; b=c; }
int main()
{
int a=4, b=9;
csere(a,b);
printf("%d %d",a,b); // 9 4
return 0;
} -
Gyuri16
senior tag
válasz skylaner #1158 üzenetére
makrot definialtal. ezt a c preprocessora feldolgozza, es a fordito mar nem latja hogy ott mi volt eredetileg, tehat addigra mar be van helyettesitve a makro teste, nincs fuggvenyhivas
wiki: [link]
gcc doksi: [link]mod: sokaig kinlodtam ezzel a bonyolult esszevel, megeloztek
[ Szerkesztve ]
Nem vagyok egoista, csak uborkagyalu!
-
skylaner
senior tag
Lenne egy egyszerű kliens-szerver progi,amiben a két fél tud egymással chatelni ill. a kliens fájlokat tölthet le a szerverről.
A kérdésem a recv()-el kapcsolatban lenne.
Ha elküldök egy üzenetet:send(client_sock,"download_over",13,0);
Akkor a fogadásnál szükség van erre?
#define BUFF_SIZE 1024
.......
char msg[BUFF_SIZE];
int len;
......
len=recv(sock,msg,BUFF_SIZE,0);
msg[len]='\0';
if(strcmp(msg,"download_over")==0) { ....}Tehát le kell zárni a stringet, vagy ez automatikusan megtörténik ?
/esetleg a send-nél 14-t kellene megadni, és akkor másolódik át automatikusan a lezáró '\0' ? /[ Szerkesztve ]
-
Jester01
veterán
válasz skylaner #1161 üzenetére
Igen, a lezáró nulla csak akkor megy át, ha 14 byteot küldesz. Jelen esetben amúgy nem is kell lezárni: if (len == 13 && strncmp(msg, "download_over", 13) == 0) ....
Ja és a recv visszaadhat hibakódot (-1) vagy éppenséggel BUFF_SIZE értéket is és ezekben az esetekben a msg[len]='\0'; felettéb szerencsétlen lenne (de gondolom a hibakezelést csak innen a postból hagytad ki).
Jester
-
skylaner
senior tag
válasz Jester01 #1162 üzenetére
Kösz, eszembe se jutott ez az n-ig összehasonlító fgv.
Visszatérve egy korábbi kérdésemre: valgrind
Feltettem ubuntut,valgrind-et. Futtattam --leak-check=full --showreachable=yes paraméterekkel, sok okosságot kiírt, de hogy tudnám azt megnézni h összesen mennyi memóriát használt a progi, ne csak azt amit malloc-al foglaltam le? Mindent, lokális,globális,fgv argumentumok változói stb...
Vagy nincs ilyen lehetőség? -
Jester01
veterán
válasz skylaner #1163 üzenetére
Hát a globális (illetve statikus) változók azok benne vannak a program fejlécében (objdump -h kimenetben data+bss). Lokális változók méreténél (ideértve a függvényargumentumokat is) nem tudom mit szeretnél tudni, esetleg a maximális verem méretet? Mivel ismereteim szerint linux alatt a verem nem csökken, ezért azt elvileg ki lehet nyomozni a futás végén. Például gdb-vel breakpoint az exit függvényre és a /proc/<pid>/maps fájlban a stack bejegyzésből.
[ Szerkesztve ]
Jester
-
skylaner
senior tag
válasz Jester01 #1164 üzenetére
Na pl:
typedef struct szam{
int a;
int b;
} SZAM;
void szum(int a,int b)
{
printf("%d\n",a+b);
}
int main()
{
SZAM* sz;
sz=(SZAM*)malloc(sizeof(SZAM));
sz->a=4;
sz->b=5;
szum(sz->a,sz->b);
free(sz);
sz=NULL;
return 0;
}sz: 4 byte
*sz: 8byte
2 int másolat: 8byteTehát ennek összesen akkor min 20byte memória kell a program egy adott pontján.
Valami ilyesmire gondoltam. -
Jester01
veterán
válasz skylaner #1165 üzenetére
A valgrindban van egy "massif" eszköz is, az nem jó?
#-----------
snapshot=64
#-----------
time=124348
mem_heap_B=8
mem_heap_extra_B=8
mem_stacks_B=1008
heap_tree=detailed
n1: 8 (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
n0: 8 in 1 place, below massif's threshold (01.00%)[ Szerkesztve ]
Jester
-
kampi_
csendes tag
Sziasztok!
Tudja valaki, hogy hogyan lehet megoldani C-ben azt, hogy létrehozok egy process-t, de úgy mintha run as-szel futttatnám? Tehát bekérem a felhasználónevet, meg a jelszót, meg hogy milyen process process-t nyissak meg, és az eredmény az hogy megnyílik a program csak úgy mintha az adott felhasználó nevében nyitnám meg.
Thx, kampi
-
kampi_
csendes tag
Hi!
Tudja valaki hogy hogyan kell használni a CreateProcessWithLogonW fv-t? Vagy csak én vagyok béna, és azért nem jó?
Így próbálom,de nem történik semmi, a CreateProcessWithLogonW mindig 0-t ad vissza,vagyis valamilyen hiba van,csak nem találom meg hogy mi?
STARTUPINFO StartInfo;
PROCESS_INFORMATION ProcInfo;
memset(&ProcInfo, 0, sizeof(ProcInfo));
memset(&StartInfo, 0 , sizeof(StartInfo));
StartInfo.cb = sizeof(StartInfo);
int bFuncRetn = CreateProcessWithLogonW(
(LPCWSTR)user,
(LPCWSTR)domain,
(LPCWSTR)password,
LOGON_WITH_PROFILE,//LOGON_NETCREDENTIALS_ONLY,
(LPWSTR)applicationname,
NULL,
CREATE_UNICODE_ENVIRONMENT,//CREATE_NEW_PROCESS_GROUP,
NULL,
NULL,
(LPSTARTUPINFOW)&StartInfo,
&ProcInfo
);CloseHandle(ProcInfo.hProcess);
CloseHandle(ProcInfo.hThread);
printf("\n\nCreateProcessWithLogonW returns :: %d", bFuncRetn);Előre is köszönöm a segítséget!
kampi
-
Jester01
veterán
1) megnézted, hogy a GetLastError mit mond?
2) van joga a felhasználónak a desktophoz? ("The application must add permission for the specified user account to the specified window station and desktop, even for WinSta0\Default.")
3) esetleg nem unicode stringeket adsz be neki?Jester
-
kampi_
csendes tag
Hi!
A GetLastError 1326-ot ad vissza, vagyis Logon Failure-el szállt el. Közben rájöttem, hogy az volt a gáz, hogy nem Unicoe típust hazsnáltam, hanem csak sima char-t nem wchar_t -t. De ezt már kijavítottam. Most az a bajom, hogy ha lokális felhasználóval akarok egy process-t nyitni, akkor műkődik, viszont ha egy olyan userral ami domain-tag akkor márnem megy. GetLastError szintén 1326-ot ad vissza.
Valakinek valami ötlet?
Előre is köszi!
kampi
-
kampi_
csendes tag
Hi!
Boccs, hogy ennyit írok. Szóval mostmár sikerült megcsinálni. A LOGON_WITH_PROFILE-t kellett átírni LOGON_NETCREDENTIALS_ONLY-ra. Most viszont az a bajom, hogy a process elindul, de a másik user neve alatt, hanem vagy az enyém alatt, vagy pedig system-ként látja a taskmanager. Ez mitől lehet? Ebben segítsetek légyszíves, mert fontos lenne.
Köszönöm!
kampi
-
cellpeti
veterán
Nem akarok hülyeséget kérdezni,de mibe lehet C.be programozni, kompatibilisnek kell lennie a Turbo C 2.0-val???
Visual C vagy Visual Studio 2008 vagy melyik?
Tigris, tigris, csóvafény...
-
cellpeti
veterán
válasz gygabor88 #1174 üzenetére
Szia!
Nekem mindenképp akkor a Visual Studio kellene,de csak C++ engedélyez. Inkább ebbe a progiba vizsgáznék,mint a Turbo C 2.0-n. Ez a progi kell a féléves vizsgához progból. Most leszedtem megint,de még mindig csak C++ enged írni. Nem tudod,hogy hol kell átállítani?
[ Szerkesztve ]
Tigris, tigris, csóvafény...
-
sghc_toma
senior tag
válasz gygabor88 #1176 üzenetére
nem szukseges beallitani, ha .c a kiterjesztes, automatikusan C-kent fordit..
amugy a project Properties|C/C++|Advanced|Compile As helyen lehet beallitani az egesz project-re (ezt felulirja a kiterjesztes).. adott file-ra is be lehet allitani, ekkor ertelemszeruen a file Properties lapjan kell beallitani, nem a project-en..in asm we trust
-
kampi_
csendes tag
Sziasztok!
Tudna valaki segíteni nekem a CreateProcessWithLogonW függvénnyel kapcsolatban?
A problémám az vele, hogy létre tudok hozni egy processt pl Total commandert, de:
- bennt a cégnél műkődik is, mert egy admin usert adok meg, és hozzáférek olyan dolgokhoz amikhez csak ezzel a userral tudok. Ezzel eddig semmi gáz. Ha megnézem Task Managerben, akkor ott viszont nem úgy látszik, hogy az admin userrel futtatom a process-t hanem a SYSTEM futtatja a process-t. Na mindegy, végülis műkődik, csak gondoltam megkérdem ezt is hátha valaki tudja hogy miért?
- otthon viszont(hazaviszem a laptopom) megpróbálom ugyanezt (semmit nem változtattam a kódon) és meg akarom nyitni az admin userrel ugyanúgy a Total commandert (már be voltam jelentkezve a gépre vele, így létrejöt a profil, tehát elvileg már akármit tudok run as-ként futtatni), és meg is nyílik, viszont itt már nincsenek meg a jogaim. Most nem hálózati jogokra gondolok, hanem pl az a user amivel be vagyok lépve, nem admin, tehát pl nem tudok egy fájlt létrehozni a c:\-ben. Az admin userrel viszont simán tudok. Van egy lokális admin user is, azzal is megpróbáltam. Megadtam a usert, jelszót, domainnak meg a gépnevet, és ugyanúgy nincs jogom hozzá. Mindkét esetben (otthon az admin és a lokál admin esetében is) task managerben úgy látszik hogy a processt az a user futtaja aki be van jelentkezve.Erre van valakinek valami ötlete?
Előre is köszi a segítséget!
Kampi
-
cellpeti
veterán
üdv! Írtam egy progit a Code:locks-ba,de nem engedi futtatni(F8).
Ez miért lehet?A fájlnak .c kiterjesztést adtam.
Tudnátok segíteni?Tigris, tigris, csóvafény...
-
-=Lord Tom=-
senior tag
Segítsetek plz, miért ugorja át a műveletjel megadását/miért nem lesz a muvjelnek megfelelő értéke?
#include <stdio.h>
int main(){
int szam, szam2;
char muvjel;
// Adatok beolvasása
printf("Kerem az elso szamot: ");
scanf("%d", &szam);
printf("\n\nMuvelet: ");
scanf("%c", &muvjel);
printf("\n\nKerem a masodik szamot: ");
scanf("%d", &szam2);
//Tényleges műveletvégrehajtás
if (muvjel=="+"){
printf("%d %c %d = %d ", szam, muvjel, szam2, (szam+szam2));
}
else if (muvjel=="-"){
printf("%d %c %d = %d ", szam, muvjel, szam2, (szam-szam2));
}
else if (muvjel=="*"){
printf("%d %c %d = %d ", szam, muvjel, szam2, (szam*szam2));
}
else if (muvjel=="/"){
printf("%d %c %d = %d ", szam, muvjel, szam2, (szam/szam2));
}
system("pause");
} -
cellpeti
veterán
-
sghc_toma
senior tag
válasz -=Lord Tom=- #1185 üzenetére
az elozo beolvasas utan ottmarad az stdin-en egy '\n', es ezt olvassa be a masodik scanf.. csinalhatod azt, hogy olvasas elott kiurited az stdin-t mondjuk igy:
char c; while ((c = getc(stdin)) != EOF && c != '\n');
ja, es az osszehasonlitasnal ne "-t hasznalj, hanem '-t.. a "+" igazabol ket karakter, a vegen van egy '\0'..
in asm we trust
-
cellpeti
veterán
A Dev C++ tud olyat,hogy nem ugrik el a program végén,mint a C-Free?
Tigris, tigris, csóvafény...
-
cellpeti
veterán
Sziasztok!
A Dev C++ról lemondtam.
Feltettem a C-Free-t,ezzel megírom a progit,majd mikor F5-vel lefuttatom egy ilyen kicsi ablakba fut le. Egész idáig jó volt,már régebben is írtam benne progit,akkor ok volt. Esetleg aki ilyet használ,az segíthetne nekem.
Tigris, tigris, csóvafény...
-
gaben
aktív tag
Hello!
Azt hogy tudom megoldani,hogy egy sima vektroból mondjuk törlöm a 3. elemet ill. egy mátrixnak mondjuk a középső sorát ?[ Szerkesztve ]
-
Gyuri16
senior tag
-
Csuty12
csendes tag
Sziasztok,
két hete kezdtem tanulni programozni c++ 3.1ben, az érdekelni hogy megoldható az hogy Vista-n normálisan fusson? A problémám az lenne hogy nem tudom teljes képernyőre kirakni, a másik pedig az hogy angol billentyűkiosztást használ a program bent, lehet valahogy ezt magyarrá varázsolni? Így kicsit macerás a () és egyebek..
u.i.: azért ezt a programot használom mert ahol oktatják ott is ez van és így egyszerűbb..
Köszönöm
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Az Apple megszerezné a klubvilágbajnokság közvetítési jogait
- Kupon kunyeráló
- EA Sports WRC '23
- Milyen belső merevlemezt vegyek?
- Autós topik
- Skoda, VW, Audi, Seat topik
- exHWSW - Értünk mindenhez IS
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Politika
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- További aktív témák...
- Commlite CM-EF-NEX Auto-Focus Adapter (Canon EF - Sony E)
- Üzletből, garanciával, legújabb Asus Vivobook 17" i7-1355U 10 mag 5GHz/16RAM/1TBSSD/17,3"FULLHD
- Üzletből, garanciával DeLL XPS 15 9500 i7-10750H 32GBRAM 1TBSSD/GTX1650Ti 15,6"4KTOUCH
- i5 12400f 3070 gamer pc
- DeLL Precision 7740 workstation, üzletből, I7-9850H/32RAM/512GBSSD/NVIDIA QuadroRTX3000/17,3"FULLHD
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen