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

کمک و پشتیبانی => برنامه‌سازی => نویسنده: aliva در 22 مهر 1388، 09:55 ب‌ظ

عنوان: دسترسی به home در c++ [حل شد]
ارسال شده توسط: aliva در 22 مهر 1388، 09:55 ب‌ظ
می‌خوام چیزی رو در پوشه خانگی همون کاربری که استفاده می‌کنه ذخیره کنم

ممنون
عنوان: پاسخ به: دسترسی به home در c++
ارسال شده توسط: sahama در 23 مهر 1388، 10:30 ق‌ظ
~ نماد پوشه خانگیه
شاید کمکت کنه
عنوان: پاسخ به: دسترسی به home در c++
ارسال شده توسط: z.k در 23 مهر 1388، 11:45 ق‌ظ
برای اینکار از دستور system تو c++ استفاده میشه.

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

برنامه بالا، یه دایرکتوری به نام test ایجاد کرده و آن را در مسیر /home/username کپی میکند.
عنوان: پاسخ به: دسترسی به home در c++
ارسال شده توسط: aliva در 23 مهر 1388، 04:22 ب‌ظ
~ نماد پوشه خانگیه
شاید کمکت کنه

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

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

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

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

منظورم اینه که من آدرس یوزرو ندم یعنی برنامه خودش بغهمه
عنوان: پاسخ به: دسترسی به home در c++
ارسال شده توسط: aliva در 23 مهر 1388، 04:51 ب‌ظ
~ نماد پوشه خانگیه
شاید کمکت کنه

تست کردم.
اینجوری که جواب نداد
ifstream file("~/file.txt");
عنوان: پاسخ به: دسترسی به home در c++
ارسال شده توسط: sisyphus در 23 مهر 1388، 05:19 ب‌ظ
HOME یک Environment Variable هست که می‌تونی ازش استفاده کنی. اول توی یک shell مقدارش رو ببین (echo  کن).
برای خوندنش توی برنامه‌ات از getenv استفاده کن. man getenv
عنوان: پاسخ به: دسترسی به home در c++
ارسال شده توسط: z.k در 24 مهر 1388، 12:33 ب‌ظ
#include <iostream>
int main()
{
system("mkdir test");
system("cp -r test ~");
return 0;
}
عنوان: پاسخ به: دسترسی به home در c++
ارسال شده توسط: aliva در 24 مهر 1388، 03:18 ب‌ظ
خیلی ممنون

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

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

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

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