المطلوب: كتابة برنامج بلغة سي، يقوم بتغيير إسمه
الشرط : لايسمح بآستخدام أي دالة، من دوال الـ API، فقط pure c
Enjoy
المطلوب: كتابة برنامج بلغة سي، يقوم بتغيير إسمه
الشرط : لايسمح بآستخدام أي دالة، من دوال الـ API، فقط pure c
Enjoy
جميل :)
بما أن صاحبنا gcc فيه كل الـpure c صايرة Built in ..
إليك أقصر كود يمكنه تنفيذ العملية :D
main(){system("rename OldName.exe NewName.exe");}هل حلي صحيح ؟
في ويندوز على الأقل ..
شكرا لك
حلك تقرياً غش :P ،
لكنني أريد حلاً يعمل بجميع الأنظمة، :D دون الحاجة الى إستخدام أدوات النظام .
:D نعم شعرت بأنه غش ... ولكن على كل حال system من pure c ولكنها تستخدم dirty c في مضمونها :D (هل هناك شيء اسمه dirty c )
على كل حال لا يزال دماغي يتدغدغ .. وإن لم يسبقني أحد فسأصل إلى الحل بإذن الله :)
شكرا جزيلاً
السلام عليكم
هل هذا ما تريده ؟ :)
#include <stdio.h>
int main()
{
if (rename("Untitled.c", "Snack3r.c") == -1)
perror("rename");
return 0;
}C++ and Java, say, are presumably growing faster than plain C, but I bet C will still be around. ― Dennis Ritchie
~OoO~________--------------------------------------------________~OoO~
من مواضيعي :
@snacker
إقتربت من الجواب، لكنك و مصطفي إفترضتم أن إسم البرنامج لن يتغير، لكن ماذا لو غيره المستخدم،
أنا أريد طريقة لإعادة تسمية البرنامج مهما كان إسمه، :evil:
هل تريد إعادة تسمية ملف السورس كود أو إعادة تسمية الملف التنفيذي ؟
إذا كنت تريد الأولى فأعتقد أن الكود التالي يفي بالغرض :)
#include <stdio.h>
int main()
{
if (rename(__FILE__ , "Snack3r.c") == -1)
perror("rename");
return 0;
}تم تعديل هذه المشاركة بواسطة Snack3r في 23 نوفمبر 2013 في 19:32
C++ and Java, say, are presumably growing faster than plain C, but I bet C will still be around. ― Dennis Ritchie
~OoO~________--------------------------------------------________~OoO~
من مواضيعي :
إستخدام __FILE__ فكرة جيدة :uwish: ، لكنها ليست المطلوب، :tbbash:
المطلوب تغيير إسم الملف التنفييذي مهما كان إسمه ..
hint
تذكر الـ Argument التي ترسل للدالة main () :tbyeah:
أرجو تعديل التحدي بالموضوع الى
تغيير إسم الملف التنفييذي مهما كان إسمه ..
أو أي جملة أخرى معبرة
تم تعديل هذه المشاركة بواسطة zirek99i في 23 نوفمبر 2013 في 11:36
السلام عليكم
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char ** argv)
{
int result;
char * oldname = argv[0];
result= rename( oldname , "hello.exe" );
if ( result == 0 ){
puts ( "File successfully renamed" );
}
else{
perror( "Error renaming file" );
}
return 0;
}@bigginer
جوابك صحيح ;)
جوابي
#include <stdio.h>
int main(int argc, char **argv) {
if(rename(argv[0], "newName")) {
perror("rename");
return 1;
}
return 0;
}رائعة :)
الغريب أن جسم الدالة rename موجودة في ملفات dll أو شيئاً كهذا .. (أستعمل VC ) يعني الكود غير متاح ! غريب
شكراً استفدت :)
مصطفى 36a2 كتب:رائعة :)
الغريب أن جسم الدالة rename موجودة في ملفات dll أو شيئاً كهذا .. (أستعمل VC ) يعني الكود غير متاح ! غريب
شكراً استفدت :)
أغلب الظن ان rename تستخدم MoveFile، فتقريبا كل الدوال عبارة عن واجهة للـ Win32 api، لم أتحقق من ذلك، لكن يمكنك بكل سهولة التأكد منه ;)
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…