目前共有9篇帖子。
ubuntu12.04管理開機啟動項目的方法
1樓 巨大八爪鱼 2012-8-15 14:23
alt ctrl t 打開終端
gnome-session-properties
2樓 巨大八爪鱼 2012-8-15 14:24
4樓 巨大八爪鱼 2012-8-15 15:16
使用這種方法添加啟動項要注意一個問題:
開機啟動後,這個程序的工作目錄為home/用戶名,並不是程序所在目錄!(這和windows下是一樣的)
如果程序運行時輸出了文件,則不能直接添加該程序到啟動項中,應該添加sh文件。
5樓 巨大八爪鱼 2012-8-15 15:18
以以下程序為例,原始碼:
#include <iostream>
#include <stdio.h>
#include <time.h>
#include <string>
#include <memory.h>

using namespace std;

int main()
{
    //獲取星期數
    string month_en[]={"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
    string month_zh[]={"一","二","三","四","五","六","日"};
    int i;
    time_t t=time(0);
    char tmp[64];
    strftime(tmp,sizeof(tmp),"%A",localtime(&t)); //獲取星期英文字符串
    for (i=0;i<7;i++)
        if (month_en[i]==tmp)
            break;
    string str="%Y-%m-%d %X 星期";
    str+=month_zh[i];
    str+=" 開機 [本年第%j天 %z]\r\n";
   
    //顯示其他元素
    memset(tmp,0,64);
    strftime(tmp,sizeof(tmp),str.c_str(),localtime(&t)); //tmp變量為最終要寫入文件的字符串
    cout<<"Welcome!"<<endl;
    cout<<tmp;
   
    //寫入文件
    char filename[20];
    strftime(filename,sizeof(filename),"powerlog_%Y.txt",localtime(&t)); //根據年份生成文件名
    FILE* file=fopen(filename,"a"); //打開文件
    fwrite(tmp,strlen(tmp),1,file); //應該用strlen而不是sizeof,否則會亂碼
    fclose(file);
   
    return 0;
}

用g++編譯後,不應該直接添加該程序為啟動項。要先建立一個sh文件,這裡我的文件名是autorun.sh:
#!/bin/bash
cd /home/octopus/程序/huber/powerlog
./powerlog

然後添加該sh文件為啟動項,然後重啟/註銷,會發現程序目錄下多了個powerlog_2012.txt文件
6樓 巨大八爪鱼 2012-8-15 15:20
回復:5樓
如果是直接添加程序為啟動項而不是sh文件的話,那麼重啟/註銷,會發現新增的txt文件在home/用戶名目錄中。
(windows下也是這樣,只不過不是home/用戶名目錄下)

7樓 巨大八爪鱼 2012-8-15 15:22
【補充】
其實用不着打開終端,先點最右上角的關機按鈕再點「啟動應用程序」也行。
8樓 巨大八爪鱼 2012-8-15 15:24
9樓 巨大八爪鱼 2013-7-8 12:28
英文版本:
#include <iostream>
#include <stdio.h>
#include <time.h>
#include <string>
#include <memory.h>

using namespace std;

int main()
{
    time_t t=time(0);
    char tmp[64];
    strftime(tmp,sizeof(tmp),"%A",localtime(&t)); //Day of week
    string str="%Y-%m-%d %X ";
    str+=tmp;
    str+=" [#%j %z] POWER ON\r\n";
  
    memset(tmp,0,64); //reset the buffer
    strftime(tmp,sizeof(tmp),str.c_str(),localtime(&t)); //Now tmp is the string to be written into the file and to be printed to the screen
    cout<<"Welcome!"<<endl;
    cout<<tmp;
  
    //Write
    char filename[20];
    strftime(filename,sizeof(filename),"powerlog_%Y.txt",localtime(&t)); //filename
    FILE* file=fopen(filename,"a"); //Open or create the file
    fwrite(tmp,strlen(tmp),1,file); //use strlen instead of sizeof
    fclose(file);
  
    return 0;
}

makefile:
powerlog: powerlog.cpp
    g++ powerlog.cpp -o powerlog
10樓 巨大八爪鱼 2015-2-21 23:58
string month_es[]={"Lunes","Martes","Miércoles","Jueves","Viernes","Sábado","Domingo"};


回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
 
 
©2010-2024 Arslanbar [手機版] [桌面版]
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。