Andres Jaimes

How to read a file name argument from the command line in C++

Reading a file name parameter from the command line is a common task. In this post I read a file name and validate it exists. For paths and file names that include spaces, you have to pass them between quotes, otherwise they will be interpreted by the operating system as two different parameters. #include <string> #include <iostream> #include <fstream> int main(int argc, char* argv[]) { for (int i = 1; i < argc; i++) { std::string s(argv[i]); if (s.

How to check command line arguments in any order

Here is an easy solution to passing parameters to a C++ application from the command line that does not require any external libraries. Since parameters are read inside a loop, the order in which they are passed is not important. #include <string> #include <iostream> int main(int argc, char* argv[]) { for (int i = 1; i < argc; i++) { std::string s(argv[i]); if (s == "-a") { std::cout << "You passed parameter -a" << std::endl; } else if (s == "-b") { std::cout << "You passed parameter -b" << std::endl; } else { std::cout << "Unknown: " << s << std::endl; } } return 0; }

How to redirect stdout / stderr to a file

Redirecting all your program output to a file is very simple and can be accomplished like this: myapp > output.log This line will send all the output generated by myapp to a file named output.log. The contents of output.log will always be overwritten; but you can use a second > to append to the current content like this: myapp >> output.log As well as with output, it is very useful to redirect the stderr (standard error output) to a file rather than to the screen.

How to install the C++ Boost Libraries on Windows

Boost is a set of high-quality libraries that speed up C++ development. They are included in most linux distributions and some of them are already part of the C++ Standard Library. In the Windows environment, you have to install them in order to take advantage of them. If you are using Microsoft Visual Studio, you can avoid the following steps by downloading a binary version from http://www.boostpro.com/download/and skip to the Testing section in this document.

One-liner to minimize your CSS files

The following one-liner will help you remove comments, spaces, and more from your CSS files. Suggestions are always welcomed. Important: Before running this command, create a copy of your original file. Try the resulting CSS in a test environment before releasing it. cat style.css | sed -e ' s/^[ t]*//g; # leading spaces s/[ t]*$//g; # trailing spaces s/([:{;,]) /1/g; # spaces after a colon, brace, semicolon, or comma s/ {/{/g; # spaces before a brace /^$/d # blank lines ' | sed -e :a -e '$!

How to manage local or remote services from command line

Starting or stopping services on Windows is a task commonly performed by using the Services snap-in on the MMC console. From time to time you want to perform such tasks from the command line. A possible reason for this is when you are creating scripts (batch files). To achieve this, you have two options: net for managing local services and sc.exe for remote ones. The net command is included in your default Windows installation.

Useful vim commands

Even though we have many sophisticated GUI text editors, there is one that has passed all time tests: vi. vi is a text editor created originally for Unix in 1976. Are you kidding? 1976? Why should I even bother to know it exists? Because that is the only text editor you will find for sure in any Unix like command line environment, that includes any Unix flavor, Linux and Macs. Believe me, there are many times when you have no other way to edit files (like webpages, php’s, css’s) but from the command line.

A basic .vimrc configuration file for vim users

.vimrc is the configuration file for vim. Upon execution vim will read the contents of this file setting up a customized environment. You have to save this file in your home directory. It is important to notice that the commands should not include the initial colon (:). Here are some useful commands: syntax on " syntax highlighing set number " show line numbers set ruler " show the cursor position all the time set ignorecase " ignore case when searching set hlsearch " highlight searches set tabstop=4 " number of spaces of tab character set shiftwidth=4 " number of spaces to (auto)indent set autoindent " always set auto indenting on set smartindent " smart indent set cindent " cindent If you are using vi instead of vim, then save your configuration to ~/.

Old school: Use xcopy to back up your stuff

Need an easy way to back up your files, but don’t feel like monkeying with expensive or complicated software? Using the xcopy command and a simple text file, you can accomplish this rather easily. Here’s what I do. First, make sure that file extensions are not hidden by going to My Computer > Tools > Folder Options > View. Uncheck Hide Extensions for Known File Types and click OK (if it’s already unchecked, don’t worry about it).

Create a DNS zone file

by FreeBSD.orgAn example master zone file for example.org(existing within /etc/namedb/master/example.org) is as follows: $TTL 3600 ; 1 hour default TTL example.org. IN SOA ns1.example.org. admin.example.org. ( 2006051501 ; Serial 10800 ; Refresh 3600 ; Retry 604800 ; Expire 300 ; Negative Response TTL ) ; DNS Servers IN NS ns1.example.org. IN NS ns2.example.org. ; MX Records IN MX 10 mx.example.org. IN MX 20 mail.example.org. IN A ; Machine Names localhost IN A 127.