[問題] linux下執行c的命令參數問題

看板C_and_CPP作者 (roger)時間4年前 (2019/10/16 09:30), 編輯推噓5(506)
留言11則, 6人參與, 4年前最新討論串1/1
初次本版發文有不妥的地方請指正 在linux下用gcc編譯./執行 作業要求把txt檔案的每行照字母排序後輸出新的txt 基本上寫完沒問題 但我卡在兩個地方 1. 命令行 ./sort < old.txt > /tmp/new.txt 在sort.c中要怎麼引用這個old.txt? 我本來想用fopen取得argv的導入文件名但失敗 我寫個迴圈把argv[]裡面的東西印出來 但只有argv[0]是 ./sort 後面全是不相干的東西 把命令行的<>拿掉argv[1] argv[2]就正常=命令參數了(old.txt 和/tmp/new) 但作業要求不能動.sh檔案也就是不能改命令 而且亂打測試發現./sort < old.txt > abcdefg 會生成一個abcdefg檔案 內容是程式中printf結果(就不會顯示在terminal裡了) 請問命令行的文件名尖括號刮起來有什麼特別意義嗎? 2. 用fopen生成單個 new.txt沒問題但加上資料夾路徑/tmp/new.txt就創不出來也不會報錯 請問是出了什麼問題或是有什麼關鍵字可以找嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 31.205.252.179 (英國) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1571189446.A.E79.html

10/16 09:33, 4年前 , 1F
不是<>而是<和>兩件事 <file表示stdin改成從file來 >fi
10/16 09:33, 1F

10/16 09:33, 4年前 , 2F
le表示stdout改成從file出去
10/16 09:33, 2F

10/16 09:37, 4年前 , 3F
直接存取 stdin & stdout,這兩個 FILE 一開始就會先開好
10/16 09:37, 3F

10/16 09:41, 4年前 , 4F
google "redirect 重導向 linux"
10/16 09:41, 4F

10/16 09:46, 4年前 , 5F
stdin & stdout 就當作鍵盤輸入、螢幕輸出即可
10/16 09:46, 5F

10/16 09:50, 4年前 , 6F
真的非常感謝各位的指點 原來我一開始思考方向就錯
10/16 09:50, 6F

10/16 09:50, 4年前 , 7F
了... 感覺在學校的linux白學了(掩面)
10/16 09:50, 7F

10/16 12:07, 4年前 , 8F
你只是沒玩過 UVa 而已 (拍拍)
10/16 12:07, 8F

10/17 01:44, 4年前 , 9F
呃 ... Windows 也是一樣啊
10/17 01:44, 9F

10/23 12:40, 4年前 , 10F
fopen可以建立檔案但是不會建立資料夾,你可以先用
10/23 12:40, 10F

10/23 12:41, 4年前 , 11F
boost::filesystem先把資料夾建好
10/23 12:41, 11F
文章代碼(AID): #1TfdB6vv (C_and_CPP)