سلام من یه برنامه دارم که یه پارامتر به عنوان ورودی میگیره و خروجی میده و با یه پیغام بسته میشه..
مثلا یه همچنین ورودی: File -info Alireza/.
حالا من میخوام خروجی دستور بالا رو بگیرم و فقط اون مقدارهایی که لازم دارم و نمایش بدم، چی کار باید بکنم؟
پ.ن: من تو فکرم بود که از pipe استفاده کنم ولی نمیدونم درسته یا نه..
مرسی از راهنمایتون
سلام
کاری که میخوایی بکنی یکی از کارهای روزمره ای هست که توی لینوکس انجام میشه؛
باا wrapper هم میتونی انجام بدی اما یادت باشه که قابلیت جابجایی این کمه؛ چون احتیاج به کامپایل کدت و تزریق و .. هست نمیتونی کدت رو روی تمام سیستم ها به درستی اجرا کنی و ..
من توصیه ام پایپ کردن هست؛ اگه بلدی که هیچی ولی اگه بلد نیستی نمونه خروجیت رو بذار و بگو کدوم قسمت هاش رو میخوایی تا با هم پیش بریم و جداش کنیم
نقل قول: کاری که میخوایی بکنی یکی از کارهای روزمره ای هست که توی لینوکس انجام میشه؛
یعنی چی؟ چطور ؟ میشه یه مثال بزنی ؟
نقل قول: باا wrapper هم میتونی انجام بدی اما یادت باشه که قابلیت جابجایی این کمه؛ چون احتیاج به کامپایل کدت و تزریق و .. هست نمیتونی کدت رو روی تمام سیستم ها به درستی اجرا کنی و ..
رپر مگه تزریق میشه ؟ اگه زحمتی نیست که توضیح میدی که کلا چطوری یه رپر مینویسن ؟ خیلی ممنونت میشم
نقل قول: من توصیه ام پایپ کردن هست؛ اگه بلدی که هیچی ولی اگه بلد نیستی نمونه خروجیت رو بذار و بگو کدوم قسمت هاش رو میخوایی تا با هم پیش بریم و جداش کنیم
خیلی ممنون سعی ام رو میکنم اگه به مشکل خوردم حتما ازتون کمک میگیرم
نقل قول: یعنی چی؟ چطور ؟ میشه یه مثال بزنی ؟
مثلا خروجیمون اینه:
کد php:
9.salam
8.man khubam va
7.u chetiori
کلمه دوم از خط دوم رو میخواییم,
کد php:
echo -e "9.salam\n8.man khubam va\n7.u chetiori" | sed -ne '2p'| cut -d" " -f2
یا همچنین کارهای مشابه ای و . .
راهای بهتری هم هستا، ابن مثال فقط واسه این بود که بگم چنین چیزایی میشه
-------------
نقل قول: رپر مگه تزریق میشه ؟ اگه زحمتی نیست که توضیح میدی که کلا چطوری یه رپر مینویسن ؟ خیلی ممنونت میشم
شاید من بد متوجه شدم؛ شما منظورتون از wrapper چی بود؟!
الان فرض کنید من یه برنامه c نوشتم وکامپایلش کردم و با تایع put خروجی چاپ میکنم! اینو چطوری میخوایی wrapper کنیش؟!
نقل قول: الان فرض کنید من یه برنامه c نوشتم وکامپایلش کردم و با تایع put خروجی چاپ میکنم! اینو چطوری میخوایی wrapper کنیش؟!
خب این دقیقا سوالی که دنبال جوابش هستم "چطوری یه رپر بنویسم؟" اما حدس میزنم که با fork پروسه میسازم و execv برنامه اجرا میکنم و خروجی رو میگیرم و نمایش میدم (البته نمیتونم اینو پیاده سازی کنم فقط تو ذهنم هست) یا راه دیگه ای که به ذهنم رسید استفاده از روش های ارتباط فرآیندی هست که پایپ به نظرم نسبت به سوکت، اشتراک حافظه بهترین گزینه هست
wrapper کردن یک برنامه در لینوکس به این شکل هست که یک فایل so (همون dll در ویندوز) ایحاد میکنی؛ و توابع استاندار رو به شرطی که به صورت دینامیکی لود شده باشند (مشابه IAT با ویندوز) ؛ باز نویسی میکنی؛ و اون so رو در فضای برنامه قرار میدی (شبیه به اینجکت در ویندوز)؛ و بعد ورودی به تابع اصلی سرازیر میشه به تابع wrapper شده شما و . . .
---------
شما هر دو تا برنامه واسه خودتون هست؟
چون من از سوالتون اینطور متوجه شدم که یه برنامه کامپایل شده دارید و حالا میخوایید یه برنامه دیگه بنویسید و از خروجی اون قبلی استفاده کنید و . . .
چون اگه هردو واسه خودتون نباشه که حافظه اشتراکی معنایی نداره اینجا!!!!!!!!!!!