Tôi có một số câu hỏi về chủ đề, dấu phẩy so với không gian, trong các tham số phân định.cmd- dấu phẩy để phân tách các tham số So với không gian?
Họ là những câu hỏi mà các lập trình viên C quen thuộc với dấu nhắc cmd, có thể ném một số ánh sáng trên ..
Tôi biết rằng khi làm
c:\>program a b c
có 4 thông số [0]=program
[1]=a
[2]=b
[3]=c
Theo hh ntcmds.chm
khái niệm ..
Shell tổng quan
; and , are used to separate parameters
; or , command1 parameter1;parameter2 Use to separate command parameters.
tôi thấy dir a,b
cho kết quả tương tự như dir a b
nhưng
c:\>program a,b,c
cho thông số [0] = chương trình [1] = a, b, c
Vì vậy, làm một số? hoặc tất cả? cửa sổ lệnh sử dụng; và,? và đó là giải thích trong mã của mỗi lệnh, hoặc được thực hiện bởi vỏ như với không gian?
Và nếu nó nằm trong mã của mỗi lệnh .. làm cách nào tôi biết sẽ làm điều đó? Tôi nhận thấy rằng tài liệu về explorer.exe đề cập đến dấu phẩy, ví dụ: bạn có thể làm explorer /e,.
nhưng DIR /? không đề cập đến nó, nhưng có thể sử dụng nó. Và một chương trình c điển hình không mất, như một dấu phân cách ở tất cả .. Vì vậy, nó là trường hợp vỏ không sử dụng dấu phẩy để phân định, nó sử dụng không gian. Và các cửa sổ lệnh làm, làm như vậy 'cos họ là (tất cả?) Bằng văn bản để delimit các tham số vỏ đã cho họ thêm khi dấu phẩy được sử dụng?
Làm thế nào bạn có thể nói những gì được thực hiện bởi trình bao, và những gì được thực hiện bởi thời gian chạy MS C hoặc lib chuẩn? Tôi có một cửa sổ c prog chỉ với #include Ở trên cùng, và mã để hiển thị argv. biên dịch với gcc.I không thể nhìn thấy một cách tôi có thể nhìn thấy "tham số hóa" được thực hiện từ vỏ và đó là tự động từ thư viện tiêu chuẩn. Ngoài ra, tôi nhận thấy dấu phẩy không làm việc cho các chương trình bên ngoài xcopy hoặc telnet. Tôi nghĩ rằng tôi đã nhìn thấy nó cho rundll32. Tôi đoán nó chỉ là một số. Không phải là một chức năng trong một thư viện công khai! Có lẽ chỉ có các chương trình ext đặc biệt làm nó aping cmds nội bộ của cmd.exe –
barlop
Mọi thứ được thực hiện bởi thời gian chạy MS C ngoại trừ chức năng shell. Chức năng Shell bao gồm những thứ như chuyển hướng ('<', '>', vv '>>'), đường ống ('|'), điều khiển luồng ('&&' và '||') và thoát ('^'). Như tôi đã nói, tôi chưa bao giờ thấy một chương trình sử dụng ',' trên dòng lệnh, vì vậy tôi không ngạc nhiên rằng bản sao và telnet không hỗ trợ nó. –
bạn có gợi ý thời gian chạy ms c không phân định dấu cách và dấu ngoặc kép không? hoặc là vẫn còn vỏ? và nếu đó là thời gian chạy ms c, bạn có thể chứng minh điều đó không? Tôi không thấy làm thế nào điểm đạn thứ hai của bạn là phân biệt unix và cửa sổ 'cos sẽ không unix vỏ cũng phân tích cú pháp chuyển hướng và đường ống. – barlop