انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: دسترسی به home در c++ [حل شد]  (دفعات بازدید: 2146 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین aliva

  • Sr. Member
  • *
  • ارسال: 363
  • جنسیت : پسر
    • http://vakilzade.ir
دسترسی به home در c++ [حل شد]
« : 22 مهر 1388، 09:55 ب‌ظ »
می‌خوام چیزی رو در پوشه خانگی همون کاربری که استفاده می‌کنه ذخیره کنم

ممنون
« آخرین ویرایش: 24 مهر 1388، 03:23 ب‌ظ توسط aliva »

آفلاین sahama

  • Hero Member
  • *
  • ارسال: 784
  • جنسیت : پسر
  • الهی به امید تو!
پاسخ به: دسترسی به home در c++
« پاسخ #1 : 23 مهر 1388، 10:30 ق‌ظ »
~ نماد پوشه خانگیه
شاید کمکت کنه
یا علی

آفلاین z.k

  • Full Member
  • *
  • ارسال: 217
پاسخ به: دسترسی به home در c++
« پاسخ #2 : 23 مهر 1388، 11:45 ق‌ظ »
برای اینکار از دستور system تو c++ استفاده میشه.

#include <iostream>
int main()
{
system("mkdir test");
system("cp -r test /home/username");
return 0;
}

برنامه بالا، یه دایرکتوری به نام test ایجاد کرده و آن را در مسیر /home/username کپی میکند.

آفلاین aliva

  • Sr. Member
  • *
  • ارسال: 363
  • جنسیت : پسر
    • http://vakilzade.ir
پاسخ به: دسترسی به home در c++
« پاسخ #3 : 23 مهر 1388، 04:22 ب‌ظ »
~ نماد پوشه خانگیه
شاید کمکت کنه

الان تست می‌کنم

برای اینکار از دستور system تو c++ استفاده میشه.

#include <iostream>
int main()
{
system("mkdir test");
system("cp -r test /home/username");
return 0;
}

برنامه بالا، یه دایرکتوری به نام test ایجاد کرده و آن را در مسیر /home/username کپی میکند.

منظورم اینه که من آدرس یوزرو ندم یعنی برنامه خودش بغهمه

آفلاین aliva

  • Sr. Member
  • *
  • ارسال: 363
  • جنسیت : پسر
    • http://vakilzade.ir
پاسخ به: دسترسی به home در c++
« پاسخ #4 : 23 مهر 1388، 04:51 ب‌ظ »
~ نماد پوشه خانگیه
شاید کمکت کنه

تست کردم.
اینجوری که جواب نداد
ifstream file("~/file.txt");
« آخرین ویرایش: 23 مهر 1388، 04:53 ب‌ظ توسط aliva »

آفلاین sisyphus

  • Jr. Member
  • *
  • ارسال: 76
پاسخ به: دسترسی به home در c++
« پاسخ #5 : 23 مهر 1388، 05:19 ب‌ظ »
HOME یک Environment Variable هست که می‌تونی ازش استفاده کنی. اول توی یک shell مقدارش رو ببین (echo  کن).
برای خوندنش توی برنامه‌ات از getenv استفاده کن. man getenv

آفلاین z.k

  • Full Member
  • *
  • ارسال: 217
پاسخ به: دسترسی به home در c++
« پاسخ #6 : 24 مهر 1388، 12:33 ب‌ظ »
#include <iostream>
int main()
{
system("mkdir test");
system("cp -r test ~");
return 0;
}

آفلاین aliva

  • Sr. Member
  • *
  • ارسال: 363
  • جنسیت : پسر
    • http://vakilzade.ir
پاسخ به: دسترسی به home در c++
« پاسخ #7 : 24 مهر 1388، 03:18 ب‌ظ »
خیلی ممنون

راه حل را می‌گذارم

باید از هدر
stdlib.hاستفاده شه

و تابع
getenv()
برای محل home باید نوشت
getenv("HOME")این تابع آدرس پوشه خانگی کاربر فعلی رو برمی‌گردنه

به جای HOME می‌شه به این تاع ورودی‌های دیگه‌ای داد که در اون صورت خروجی عوض می‌شه
برای دیدن اینا در ترمینال بزنید
env
مثلا
getenv("USER")
username کاربر فعلی رو بر‌میگردوه