View Full Version : سوال در مورد مفهوم portable بودن C
mohammadi.rm@gmail.com
سه شنبه 10 اردیبهشت 1387, 17:43 عصر
همه ما تو کتابها خوندیم که زبان c یک زبان portable هست ولی عملا یک برنامه c که در سیستم عامل ویندوز نوشته می شود در سیستم عامل لینوکس اجرا نمی شه .ولی کد بایت های زبان جاوا روی همه سیستم عامل ها کامپایل و اجرا می شه.
می خواستم بپرسم از اساتید کسی هست که این حقیر رو راهنمایی بکنه که ایا c واقعا portable هست یا نه ؟ با تشکر
Nima_NF
چهارشنبه 11 اردیبهشت 1387, 01:05 صبح
ولی عملا یک برنامه c که در سیستم عامل ویندوز نوشته می شود در سیستم عامل لینوکس اجرا نمی شهدلیل آن این است که شما از توابع مختص به سیستم عامل که منحصر به همان سیستم می باشد در کنار قابلیت های C استفاده کرده اید. اگر به تنهایی از امکانات خود زبان C++/C استفاده کنید برنامه شما قابل کامپایل شدن برای سایر سیستم عامل ها نیز هست. مثل فرمت عکس JPG که برای اینکه قابل حمل باشد از فایل ها در خود C استفاده کرده است نه توابع فایل مختص سیستم عامل خاصی.
توجه کنید که زبان C شامل توابع گرافیکی و GUI نیست.
زبان C و ++C در هر سیستمی که پیاده سازی شده باشد و کامپایلری برایش وجود داشته باشد قابل استفاده می باشد، از جمله تلفن های همراه ، کنسول های بازی مانند PlayStation و ... و به همین منظور با توجه به وجود توابع گرافیکی و رابط کاربری متفاوت در هر سیستم با سیستم دیگر فرق می کند. که این موضوع هم به دلیل استفاده از نهایت کارآیی می باشد.
در هر حال ابزاری برای این کار وجود دارد که به آن ها GUI toolkits می گویند که Cross-platform هستند ، یعنی رابط گرافیکی کاربر (GUI) در قالب یک فرم ، برای اکثر سیستم عامل ها پیاده سازی شده است و لذا در صورت استفاده از آن ها، برنامه شما قابل کامپایل شدن و اجرا در سایر سیستم عامل ها نیز هست.(مانند Qt و wxwidgets و +GTK و ...)
در همین بخش مقاله ای قرار داده شده است که در آن به موضوع Cross-platform با زبان C++/C به طور مفصل پرداخته شده است.
mohammadi.rm@gmail.com
شنبه 28 اردیبهشت 1387, 09:51 صبح
یعنی منظور شما این است که مثلا دستور scanf که در ویندوز اجرا می شود و در لینوکس
اجرا نمی شود مختص زبان c نیست؟
در این صورت c به خوبی نتوانسته است مفهوم portable را پیاده سازی کند
Mehdi Asgari
سه شنبه 07 خرداد 1387, 23:13 عصر
من فکر می کنم منظور این دوستمون از portable بودن ، binary compatibility باشه. اگه منظورتون همینه ، که خب معلومه جوابتون منفیه. ما حتی بین نسخه های مختلف لینوکس این قابلیت رو نداریم ، چه برسه بین دو تا سیستم عامل مختلف.
زبان C یک زبان portable هست ، به شرطی که شما از توابع استاندارد C استفاده کنید. یعنی اگه برنامۀ شما فقط از توابع کتابخانۀ استاندارد C (مثل ، printf ، malloc ، و ... scanf) استفاده کنه ، تضمین میشه که روی تمامی سیستم عامل هایی که کامپایلر C براشون موجود هست (and who is not ?) کامپایل بشه. پس این portability در سطح کد هست نه در سطح باینری.
بعضی از کتابخانه های استاندارد: stdio.h ، stdlib.h ، string.h ، time.h
MSJazayeri
جمعه 21 تیر 1387, 04:49 صبح
جاوا به لطف ماشین مجازی portable شده!
smile17
جمعه 21 تیر 1387, 13:13 عصر
من فکر می کنم منظور این دوستمون از portable بودن ، binary compatibility باشه. اگه منظورتون همینه ، که خب معلومه جوابتون منفیه. ما حتی بین نسخه های مختلف لینوکس این قابلیت رو نداریم ، چه برسه بین دو تا سیستم عامل مختلف.
زبان C یک زبان portable هست ، به شرطی که شما از توابع استاندارد C استفاده کنید. یعنی اگه برنامۀ شما فقط از توابع کتابخانۀ استاندارد C (مثل ، printf ، malloc ، و ... scanf) استفاده کنه ، تضمین میشه که روی تمامی سیستم عامل هایی که کامپایلر C براشون موجود هست (and who is not ?) کامپایل بشه. پس این portability در سطح کد هست نه در سطح باینری.
بعضی از کتابخانه های استاندارد: stdio.h ، stdlib.h ، string.h ، time.h
در واقع اگر شما از ANSI C (http://en.wikipedia.org/wiki/ANSI_C) استفاده كنيد و برنامه نويسي كنيد و كامپايلري كه براي كامپايل به كار مي بريد از ANSI C (http://en.wikipedia.org/wiki/ANSI_C) پشتيباني كند ،مشكلي نخواهيد داشت
ahmad-hagh
شنبه 22 مرداد 1390, 02:06 صبح
عزیزم شما همین کدهات رو ببر تو لینوکس کامپایل کن. اون وقت اونجا اجرا میشه
زبان که یکیه. هر کامپایلری متناسب با پلتفرمش فایل اجرایی میسازه
اینم واسه کامپایل تو ترمینال بزن (البته اگه gcc رو نصب داری) :
g++ -o output_filename source_fileName
توضیح بیشتر خواستی سرچ کن 1000000% پیدا میشه
Royaptipimupt
یک شنبه 10 مهر 1390, 07:23 صبح
The only generators that are 100 silent are solar or wind generators, but the problem is that no major manufacturer really makes these models yet and those who do are relatively expensive. However there are several options that have a reduced noise, one option is to look into portable propane power generators. They have been reviewed as being a lot quieter than regular gas powered generators. Another option is that once you select your power generator, you construct a sound proof casing for it that will muffle the sound to an acceptable level.
In regards to your projector, other than it being able to go outside, do you have any additional requirements or a price range for it?
-Jason
Hooman.Prog
یک شنبه 24 مهر 1390, 10:19 صبح
ببخشید فرق مستقل از پلتفرم و portble چیه؟
vBulletin® v4.0.8, Copyright ©2000-1390, Jelsoft Enterprises Ltd.