kako se pokreće kompajlirani command line program?
(1 korsinik/a gleda/ju temu) (1) Gost

kako se pokreće kompajlirani command line program?


23.01.2011 | 15:56
Nešto pokušavam pomoći nećaku, ali imam problem što ne znam kako pokrenuti C program jednom nakon što je uspješno kompajliran.

Imam, dakle, neki trivijalni C programčić koji je uspješno iskompajliran, bilo da sam to napravio iz Terminala pomoću GCC, bilo pomoću Xcode.

Skužio sam da se u Xcode nakon pokretanja interakcija s programom odvija kroz debugger console, međutim, iz nekih svojih razloga bi više volio pokrenuti ga iz Terminala.

U oba slučaja (i pomoću gcc, i kroz Xcode) dobijem executable binary. GCC kreira a.out u tekućem direktoriju, a Xcode kreira file s imenom projekta smješten u Build/Debug/ unutar mape projekta. U oba slučaja unix dozvole su postavljene tako da je file executable, dakle

-rwxr-xr-x

Koliko se sjećam (ali davno je to bilo), na Unixu je bilo nakon toga dovoljno utipkati ime programa i enter i program bi se pokrenuo. Ovdje, međutim, dobijem poruku "command not found". Isto i nakon što sa chmod 0777 pretvorim dozvole u

-rwxrwxrwx

Isto i ako pokušam pokrenuti sa sudo.

Što sam to zaboravio? Ili na Appleu ima negdje neka kvačica koja onemogućava pokretanje izvršne datoteke ako nije na određenom mjestu na disku?
23.01.2011 | 16:16
Eh... Skužio sam da umjesto

a.out

moram tipkati

./a.out

i onda radi.

Ali - ostaje pitanje - zašto? I može li se to kako izbjeći?
23.01.2011 | 16:43
Ili na Appleu ima negdje neka kvačica koja onemogućava pokretanje izvršne datoteke ako nije na određenom mjestu na disku?

To je unixov feature. Izvršavanje aplikacija u terminalu ovisi o search pathu ("executable search path" ) koji je pohranjen u $PATH env varijabli.

Current directory ("." ) nije u search pathu iz sigurnosnih razloga - tako je najjednostavnije spriječiti izvršavanje malicioznih naredbi (trojani!). Iz perspektive "kućnog Mac usera" to vjerojatno zvuči paranoično ali kada u višekorisničkom sustavu nečiji folder ima "write" privilegiju za sve usere, kada bi "." bio u executable search pathu, netko bi mogao u njega kopirati svoju verziju, recimo, "pwd" naredbe koja radi nešto nevaljalo - i ta verzija bi se izvršila prije sistemske, samo zato što je u lokalnom pathu - točnije, izvršio bi je user u čijem je lokalnom pathu, ne znajući da će pokrenuti "trojana" umjesto sistemske naredbe. Pa su tome doskočili sa "./" - teško da ćeš slučajno napisati "./pwd".

Ako ti je tlaka uvijek pisati "./" dodaj folder u kojem je novokompajlirani exe u path i moći ćeš ga pozivati samo s imenom exe datoteke.
23.01.2011 | 16:58
OK, hvala na tumačenju, ali ipak se ne mogu složiti da je to Unix feature. Radio sam na Unixu dosta i to nije bilo tako. Odnosno, nije bilo "by default".

I, naravno, nitko nije stavljao da je njegov folder otvoren za pisanje svima.

No, nema veze. Sve je jasno, hvala!
23.01.2011 | 17:16
OK, hvala na tumačenju, ali ipak se ne mogu složiti da je to Unix feature. Radio sam na Unixu dosta i to nije bilo tako. Odnosno, nije bilo "by default".

Ne sjećam se kad sam instalirao zadnji unix od nule, a s obzirom na različitost distibucija ne bih stavljao ruku u vatru kako je (ili kako je bio) podešen defaultni path. U svim unixima koje trenutnu koristim nije u pathu pa pretpostavljam da su admini to prihvatili kao "dobru praksu".

Tebi definitivno nitko ne brani dodati "." u path.

export PATH=$PATH:.
23.01.2011 | 17:50
ja ti mogu samo oko Xcodea reć kako ga pokrenut u Terminalu, budući da nisam zadovoljan sa Xcodeovom konzolom.

img.skitch.com/20110123-gjxm1esip5jwh2xgmqfq92tf1s.png
23.01.2011 | 18:19
A može se i mišem odvući u Terminal isto (to sam skužio kasnije). Hvala u svakom slučaju!

Đipi, Unix kojeg sam ja zadnjeg instalirao bio je SCO Unix za PC platformu, 1998. Osim toga sam koristio Unix na onim istim Sun Sparcovima koji su sad naslagani ispod stepenica u Peek & Pokeu, a i tzv. Minix na DEC MicroVAX 350.

Linux nisam koristio skoro ništa. Da ne misliš ti na Linux?
23.01.2011 | 20:17
Djipi je dobro odgovorio. Osobno sam doživio kako je to preporučena sigurnosna politika na Linuxu, FreeBSD-u i Solarisu, a očigledno i na OS X
23.01.2011 | 20:45
OK. Prihvaćam logiku iza toga.
23.01.2011 | 21:45
Current location nije u pathu ni na Solarisu ni na Linuxu ni na AIX-u ni na Tru64 ni na HPUXu ni na NetBSD-u ni na OS X-u.
Iz mojeg iskustva.
Moderatori: Bertone
  • Stranica:
  • 1

Vikalica™

Zadnja poruka: pred 6 sati, 21 minuta
  • smayoo: Je li ikom jasno - zašto, pobogu? :huh:
  • drlovric: Talibani malo zaratili sa Pakistanom. Treci put ratuju sa nuklearom silom. Briga njih za Starcraft :)
  • korisnik: A jučer je 71. proslavio Alain Prost ;)
  • korisnik: Sretan 71. Steveu, i mojoj mami :D
  • dpasaric: Jobs bi danas slavio 71. rođendan!
  • dpasaric: VanjuOS, pisao sam o tome u Mac Pro 5,1 ili 7,1 temi, potraži tamo
  • smayoo: Čestitam! ;)
  • VanjusOS: nedavno sam negdje vidio opis kako instalirati window na mac bez bootcampa, ali sada to ne mogu naći.
  • Yonkis: [link]
  • Yonkis: company recently confirmed a special announcement for March 4. Among the expected products are a low-cost MacBook and a new generation of Studio Display.
  • Gjuroo: Pokoj mu duši
  • smayoo: RIP :(
  • Air: RIP, otišla još jedna legenda -Robert Duvall
  • jura22: Navlakusa za novi macOS.
  • imenso: Nije free, ima pretplatu, neke aplikacije i posebnu za iPad
  • Yonkis: Apple Creator Studio - free - [link]
  • drlovric: Bas tako Mario. Ja sam bio u USA i kupio MBP M1 Pro 16" i najmanju potrebu nemam da ga mijenjam. Pogrijesio sam jedino sto nisam uzeo 14" :)
  • marioart: uredjaji su predobri i predugo traju :)
  • Riba: Zalosno je vidjeti kako mac prodaja stagnira.
  • Yonkis: Ili ovako nešto? [link]
  • Yonkis: Gdje staviti ovakve vijestice? [link]
  • gladhr2: [link] ima li netko pametan da mi malo pomogne sa ovim problemom..?
  • dpasaric: Nema indoor mapa kod nas AFAIK.
  • Yonkis: Jeste li znali za bolji anti-reflective sloj na 17ici? [link]
  • Yonkis: Ima li u Rijeci ili igdje u HR ovo implemetirano? [link]
  • Yonkis: Novi AirTag: [link]
  • Yonkis: Bijah u Smart Doctoru, zamjenska je 100€ a originalna je 170€
  • smayoo: @Yonkis, pitao si kome vjerujemo :)
  • marioart: @Yonkis ovisno o aparatu koji imas, nije ti zgorega ni provjeriti cijene u sluzbenom servisu... ja sam u mediamarktu u njemackoj platio zamjenu za 13pro 88eura ... spojis ugodno sa korisnim i u Graz u shoping i servis
  • Yonkis: A ovi u Rijeci, Smart Doctor? Evo linka:[link]
  • Yonkis: Novi firmware ako nekome treba: [link]
  • Yonkis: Nevjerovatno da je cijena skočila na 150€ a znam da je prije 2 godine bila cca 70€. Prestrašno!
  • smayoo: @Yonkis - nažalost, u Rijeci više nikom. :( U Zagrebu je Davor više puta spomenuo da ima dobra iskustva s Agramservisom
  • VanjusOS: pa ti vratim
  • VanjusOS: ako imaš kabl kojeg trebaš isprobati možeš poslati meni da isprobam spojiti Mac pro
  • VanjusOS: i ja tražim već thunderbolt 2 kabel, iz Osijeka sam
  • zoranowsky: Jel ima netko u ZG za posuditi thunderbolt 2 kabel? Imam issue sa minijem M4 i thunderbolt 27 displayem pa trebam testirati neke kombinacije...
  • Yonkis: Kome vi u Rijeci vjerujete za zamjenu baterije na iPhonu jer u iStyleu je 150 € i čeka se par tjedana
  • Yonkis: :(
  • smayoo: [link]
  • smayoo: RIP Scott Adams :(
  • Gjuroo: Za sad to može zvučati i kao Affinity priča. Not great but not that bad.
  • Soffoklo: Za to vrijeme Apple se lagano pretvara u Adobe - [link]
  • drlovric: Sve je bolje od ove blamaze sa Apple AI i cekanja pametnije Siri koja nikako da dodje :)
  • IkoIko: Apple i Google sklopili ugovor o korištenju Gemini AI... Zanimljiv razvoj situacije
  • ZeljkoB: Spigen - [link]
  • Riba: Moza zato da mozes koristiti BT tipkovnicu i mouse i dok je zaklopljen?
  • user: glupo: zatvorim laptop, BT i dalje upaljen, što ne bi trebalo ovo **** se ugasit kad ga poklopim
  • rusty: date hack je samo na par sekundi. vratiš datum, startaš app čisto da se digne i vratiš datum opet. To je to. Čisto da loada profile i postavke
  • smayoo: Date hack nisam htio raditi jer potrga druge stvari. Krenuo sam instalirati staru verziju LogiOptions preko homebrewa, ali riješili su problem prije nego sam dospio to napraviti

Za vikanje moraš biti prijavljen.

Prijava

Novo na Jabučnjaku

Teme

Poruke

Komentari

Anketa

Koji Mac koristite?

Page Speed 0.75 Seconds

Provided by iJoomla SEO