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 1 dan
  • 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
  • rusty: Osobno mislim da je 12h predugo za cert problem I nisam mogao doć na sebe kakav su problem napravili. Ono što je još gore, ovo im nije prvi put za taj isti slučaj. Dakle kako ne naučiš nešto iz ovoga. Dodano, date hack rješava problem da se ne mora drugi put čekati 12h
  • Bertone: A jučer nisam koristio MBP nego T14s pa nisam iskusio veselje sa certifikatima :D
  • Bertone: Imam MXMastera već godinama [link] i jedina dobra stavr kod njega je što ga mogu koristiti sa MBP, Tnink Padom i desktop računalom bez pretjeranog petljanja, no da je (pre)skup za ono što nudi, je.
  • smayoo: I, na kraju, ako za neki komad hardvera koji sam u životu kupio mogu reći da NIJE preskupo plaćen, to je sigurno Logitech MX Master 3. Jučer ujutro jesam bio spreman popi... na njih, ali činjenica je da su problem riješili unutar cca 12h otkad se pojavio.
  • smayoo: Osim toga, hardver radi s bazičnim postavkama, ali svi tweakovi i custom podešenja - ne.
  • smayoo: Radi se o softveru koji mora dobiti dozvolu korisnika da zakopa dosta duboko pod haubu radi komunikacije s periferijom.
  • smayoo: Ne mora biti spojeno na internet. Sigurnosni certifikat aplikacije je bio istekao i Apple ga je blokirao, a Logitech nije pazio na datum isteka certifikata i nije izdao update s novim certifikatom na vrijeme
  • Bertone: Ček malo, preskupo plaćeni hardver ne dela na Apple računalu ako računalo nije spojeno na internet (na stranu sad istekli certifikat) ili sam propustio nešto
  • smayoo: Da, jučer sam imao natezanje oko toga. Ali moram im priznati da su brzo riješili.
  • Yonkis: [link]
  • smayoo: @mrobert, forum, tema "eOI - opet diskriminacija"
  • stefanjos: SRETNA NOVA!
  • drlovric: [link]
  • signout: Sretna Nova!
  • zoranowsky: Sretna Nova!
  • dpasaric: Sretno nam svima! :)
  • Borisone: Sretna vam 2026-ta godina!
  • Gjuroo: Sretna i berićetna 2026.!
  • smayoo: SRETNAAAAAAAA!!! :D
  • Borostef: Sretna Nova godina!!! :)
  • Air: Sretna i uspješna nova!
  • drpongrac23: Sretna nova 2026. svima!!!

Za vikanje moraš biti prijavljen.

Prijava

Novo na Jabučnjaku

Teme

Poruke

Oglasi

Komentari

Anketa

Koji Mac koristite?

Page Speed 0.56 Seconds

Provided by iJoomla SEO