• 0
A r o m a

SYSTEM CALLS

سؤال

السلام عليكم جميعا ً :rolleyes:


نعرف انه في لغه الـ ++C يوجد نوعان من الـ Calls وهما:

system calls : وهي التي يعملها النظام ويقوم بتنفيذها في الـ system kernel , وهذه النوعيه من المناداه لاتكون مربوطه ببرنامجك

Library calls : وهي موجوده في الـ Library , وهذه النوعيه من المناداه تكون مربوطه بالبرنامج بواسطه الـ Functions


سؤالي هنا عن الـ system calls
لدي برنامج يستخدم هذه النوعيه من الـ calls , وبالتحديد في هذا الكود :
 

 system("cls");	  cout<<"                    CHOOSE ONE OF THE FOLLWING CHOICES\n";  cout<<"                    -----------------------------------\n";  cout<<"                        o:  Open an Account\n\n";  cout<<"                        c:  Close UR Account\n\n";  cout<<"                        a   Another operator (withdrawal,depositing,Zakat)\n\n";  cout<<"                        p:  Display The Accounts\n\n";  cout<<"                        h:  Show account\n\n";  cout<<"                        s:  So ( Add ,delete ,process ) \n\n";  cout<<"                        t:  process SO FOR ALL ACCOUNTS\n\n";  cout<<"                        q:  Exit \n";  cout<<"\n\t\tyour choice ? ? ";cin>>ch;

ماذا تفعل الـ system call المسماه بـ system("cls") في هذا الجزء من الكود؟؟؟
لان البرنامج لدي يظهر خطأ في اللنك اثناء عمل الـ run , مع ان الـ compile يمشي بصوره صحيحه
ولا استطيع ان ارى النتائج


سؤال اخير
هل هذه النوع من المناداه لها علاقه بإنتاج ملف بإمتداد exe ؟


وشكرا مقدما لمن يدلني على حل :rolleyes:

تم تعديل بواسطه مصطفى 36a2
add some tags
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

6 إجابة على هذا السؤال .

  • 0

الدالة system تقوم فقط بتنفيذ الأمر المرسل كأنها أمر كتبته و أنت في الشاشة السوداء.

يعني لو استدعيت system("dir"); فسترى قائمة بالملفات الموجودة في الـ current working directory

لو كتبت أمرا غير معروف لدى نظام التشغيل, فإن الكومبايلر لا يستطيع اكتشاف الخطأ لأنه ليس خطأ لغويا في البرنامج, هو مجرد استدعاء function و ارسال char * كبارامتر لهذا الـ function.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

^

^

^

^

وضحت لدي النقطه الان :rolleyes:

شكرا ً جزيلا ً

ولكن ماذا عن الـ system("cls") , ماوظيفتها ببرنامجي ؟

مع العلم انه من المفروض للبرنامج ان يعرض الـ run من الشاشه السوداء بملف امتداده exe

لكنني لم اعرف طريقة عرضه بهذا الشكل :lol: !

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

cls هو امر تنظيف او مسح الشاشة من محتوياتها, يمكنك ان تجرب الامر من الـcommand لتشاهد النتيجة...

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

^

^

^

^

:lol: wow :lol:

جربتها , بالفعل كأنه يعمل clear للاشياء التي تظهر على شاشه الدوس !

شكرا جزيلا

بقي استفساري الاخير واعذرورني على كثرت الاسئله :lol:

مع العلم انه من المفروض للبرنامج ان يعرض الـ run من الشاشه السوداء بملف امتداده exe

لكنني لم اعرف طريقة عرضه بهذا الشكل  !

:rolleyes:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اكتشفت شي :lol:

في بدايه البرنامج كان يوجد include لهذا الـ header

#include "head1.h"

ذهبت الى محتوياته و وجدت هذا الاوامر

<html>
<body>
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: head1 - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\1E4E~1\LOCALS~1\Temp\RSP14.tmp" with contents
[
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:yes /pdb:"Debug/head1.pdb" /debug /machine:I386 /out:"Debug/head1.exe" /pdbtype:sept
".\Debug\head1.obj"
]
Creating command line "link.exe @C:\DOCUME~1\1E4E~1\LOCALS~1\Temp\RSP14.tmp"
<h3>Output Window</h3>
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/head1.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.



<h3>Results</h3>
head1.exe - 2 error(s), 0 warning(s)
</pre>
</body>
</html>

اتوقع من الـ header قمنا بإنشاء ملف الـ exe

ولكنه يشير الى وجود 2 errors , وهذا سبب فشل انشائه !

هل من اقتراح او راي :rolleyes:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لا اخي انت فاهم غلط, ليس هكذا شكلت ملفات الـ header اللتي تعمل لها include ..

الملف اللذي رأيته هو build log ينتجه ++Visual C ليخزن نتائج عملية الـ compilation او الترجمة كما يسمونها.

unresolved external symbol _main

الخطأ من هنا واضح انه لا يوجد main

//include files

int main()
{
// ... your code here
}

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .